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

1.js

[javascript] view plain copy

  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

[html] view plain copy

  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

[php] view plain copy

    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"];
时间: 2024-10-19 18:55:21

Yii2 使用十二 配合ajaxFileUpload 上传文件的相关文章

katalon系列十二:自动化上传文件、下载文件

一.下载文件1.下载文件时,需要先设置好Chrome/Firefox下载路径.不弹出下载框等,大家先学习下在selenium下如何设置:https://www.cnblogs.com/fnng/p/7700620.html 在Katalon中设置Chrome的DesiredCapabilities如图: 点击菜单Edit-Desired Capabilities-Web UI-Chrome,点击Add,名称输入prefs,类型选Dictionary,Value如下:profile.default

ajaxFileUpload上传文件后提示下载的问题

在某些版本浏览器下ajaxFileUpload上传文件会提示下载, 1:为什么? 可以观察到,即便返回 JsonResult 在返回的头中也没有任何消息体,直接理解为文本了. 2:解决方案 前端: function uploadImg(fimgi) {    if ($("#fimg" + fimgi).val().length > 0) {        //alert($("#fimg" + fimgi).val().length); }    else

在使用 AjaxFileUpload 上传文件时,在项目发布到 iis 后,图片不能预览

在使用 AjaxFileUpload  上传文件时,图片已经上传成功了,在站点没有发布时,可以预览,可是在项目发布到 iis 后,图片就不能预览,在网上找了很多的方案也没解决,最后的解决方案如下: 1.开始运行 regedit 打开注册表,先备份注册表 2.找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters 3.在 编辑 菜单上指向 新建 ,然后单击 DWORD 值 . 4.键入 EnableAggres

用ajaxFileUpLoad上传文件不能正确取得返回值的问题

刚开始没有觉得ajax请求的dataType参数的重要性,用了ajaxFileUpLoad插件后,如果页面代码如下: fileElementId : ['imageToUpload'], url : 'url', dataType : 'json', 返回类型为json数据,那么后台处理上传后,必须将返回值封装成json格式的数据返回给前台页面. 后台封装如下: return "{\"result\":" + "\"OK\"}"

ajaxfileupload上传文件,返回json数据报错的问题。

在使用ajaxfileupload上传文件的时候,文件上传成功了,但是返回的json数据一直解析不了.一直提示:Resource interpreted as Document but transferred with MIME type application/json,从字面上理解返回的是文档不能转换为json.但是从服务器那边返回的response里data-type确实是applicaiton/json.困扰很久,查看ajaxfileupload源代码发现,其实ajaxfileuploa

ajaxFileUpload上传文件成功后却无法解析服务器返回的json数据

ajaxFileUpload是一款很好用的文件上传插件,网上也有很多关于它的版本,但在上传文件成功后想返回json数据给前台时,却会出现无法解析json数据的情况. 仔细调试发现其实在向服务器提交数据后,是进入了success回调函数的,只是没有解析到json数据.那就说明服务器做出了响应的,进入了success方法的,唯一的问题就是前台接受的数据不是json格式的. 使用console.log输出data发现并不是纯粹的json数据,其中头部多了<pre style="word-wrap

Jquery+ajaxfileupload上传文件

1.说明 ajaxfileupload.js是一款jQuery插件,用于通过ajax上传文件. 下载地址:http://files.cnblogs.com/files/lengzhan/ajaxfileupload.zip 2.使用方法 首先引用js脚本 <script src="Scripts/jquery/jquery-1.9.1.js" type="text/javascript"></script> <script src=&q

springmvc+ajaxFileUpload上传文件(前后台彻底分离的情况下)

首先是导入jar包: web.xml: 1 <servlet> 2 <servlet-name>mvc-dispatcher</servlet-name> 3 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 4 <init-param> 5 <param-name>contextConfigLocation&l

Hessian学习总结(二)——使用hessian上传文件

hessian较早版本通过 byte[] 进行文件传输:4.0之后支持 InputStream 作为参数或返回值进行传输. 注意:hessian会读取整个文件,如果文件过大,会导致JVM内存溢出.可以通过控制上传文件的大小,设置合理的JVM参数,以及采用随机读取方式来解决. 一.创建Hessian服务端 创建一个FileUploader Web项目作为文件上传的服务端,如下图所示: 1. 1.创建文件上传服务接口FileUploadServiceI FileUploadServiceI接口代码如