Yii2 使用十二 配合ajaxFileUpload 上传文件

时间:2023-03-10 07:49:24
Yii2 使用十二 配合ajaxFileUpload 上传文件

1.js

  1. $("input#upload").change(function () {
  2. $.ajaxFileUpload({
  3. url: '/members/web-members-rest/upload.html',
  4. secureuri: false,
  5. data:{'id':id},
  6. fileElementId:'upload',
  7. dataType: 'xml',
  8. success: function (data, status) {
  9. if ($(data).find("result").text() == 'Success') {
  10. //上传成功
  11. }
  12. else{
  13. alert("上传失败");
  14. }
  15. },
  16. error: function (data, status, e) {
  17. return;
  18. }
  19. });
  20. });
  21. $("a.upload").click(function(){$("input#upload").click();});

2.htm

  1. <a href='javascript:;' class="upload">上传</a>
  2. <div style="display:none"><input type="file" id="upload" name="UploadForm[file]" /></div>  这个name很重要
  3. <img data-name="img" src="blank.gif" />

3.php,rest

    1. public function actionUpload(){
    2. $params=Yii::$app->request->post();
    3. $model = new UploadForm();
    4. if (Yii::$app->request->isPost) {
    5. $model->file = UploadedFile::getInstance($model, 'file');
    6. if ($model->file && $model->validate()) {
    7. if(!file_exists('data/upload/'.$uid))mkdir('data/upload/'.$uid);
    8. $path='data/upload/';
    9. if(!file_exists($path))mkdir($path);
    10. $filename=$params['id'].'.' . $model->file->extension;
    11. if($model->file->saveAs($path.$filename))
    12. return ["result"=>"Success","url"=>$path.$filename];
    13. else return ["result"=>"Fail"];
    14. }
    15. return ["result"=>"ValidFail"];
    16. }
    17. return ["result"=>"PostFail"];