ajaxfileupload是一个jquery的文件上传插件,可以利用ajax无刷新上传文件到服务器。其实现原理为:利用js动态创建一个表单,并提交。但默认情况下,该插件只能上传一个文件,且不能携带其它参数。有时候,我想给在上传文件的同时,还带一个参数,用来表示将文件上传到哪个目录下。下面的修改就可以实现这个功能。
第一步:调用插件的地方,加上参数:
$("#loading")
.ajaxStart(function(){
$(this).show();
})
.ajaxComplete(function(){
$(this).hide();
});
var targetDir = '/usr/local/apache/htdoc/upload';
var url = '<?php echo site_url('file/upload');?>';
$.ajaxFileUpload({
url: url,
secureuri: false,
fileElementId: 'fileToUpload',
dataType: 'text',
//增加一个目标目录的参数
targetDir:targetDir,
success: function (data, status) {
$('#upload_html').text(data);
},
error: function (data, status, e) {
$('#upload_html').text(data);
}
});
第二步,修改插件代码:
在ajaxfileupload.js中调用创建表单的函数处,增加一个参数:
var form = jQuery.createUploadForm(id, s.fileElementId,s.targetDir);
修改createUploadForm函数:
createUploadForm: function(id, fileElementId,targetDir)
{
//create form
var formId = 'jUploadForm' + id;
var fileId = 'jUploadFile' + id;
var targetId = 'targetDir'+ id;
var form = $('<form action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');
var oldElement = $('#' + fileElementId);
var newElement = $(oldElement).clone();
var targetDirElement = '<input type="text" name="targetDir" value="'+targetDir+'">';
$(oldElement).attr('id', fileId);
$(oldElement).before(newElement);
$(oldElement).appendTo(form);
$(targetDirElement).appendTo(form);
//set attributes
$(form).css('position', 'absolute');
$(form).css('top', '-1200px');
$(form).css('left', '-1200px');
$(form).appendTo('body');
return form;
},
在php接受上传处理的页面,就可以用$_POST['targetDir']来接收目标目录的值了。
分享到:
相关推荐
在使用AjaxFileUpload进行文件上传时,可能会遇到一些常见的问题,比如“无返回结果”或者在尝试解决问题后出现“syntaxError: unexpected”的错误提示。这个情况通常与JavaScript语法错误、服务器端响应格式、...
这个文件是在ajaxFileUpload.js文件基础上修改的,主要解决了以下问题: 1、由于jquery版本问题引起的bug,解决了ajaxFileUpload 报jQuery....3、优化,解决了使用ajaxFileUpload除了上传文件外不能传递其他参数的bug
AjaxFileUpload是基于JavaScript和AJAX技术的一种实现文件上传的方式,它允许用户在不刷新整个页面的情况下进行文件上传,提供了一种更为流畅的用户体验。在本文中,我们将深入探讨AjaxFileUpload的工作原理、如何...
标题中的“文件上传 ajaxfileupload.zip”提示我们这个压缩包可能包含了一个用于实现文件上传功能的JavaScript库,名为“ajaxfileupload.js”。在Web开发中,文件上传是常见且重要的功能,尤其在需要用户提交图片、...
3. **初始化插件**:通过`.ajaxFileUpload()`方法绑定到文件输入元素上,并设置必要的参数,如URL(服务器端处理上传的接口)、数据(可选,附加到请求的数据)和回调函数。 4. **处理结果**:定义各种状态的回调...
3. **错误处理**:当文件上传失败时,可以捕获错误信息并展示给用户。 4. **文件类型限制**:可以通过配置限制用户只能上传特定类型的文件。 5. **文件大小限制**:可以设置上传文件的最大大小,防止大文件导致...
`ajaxFileUpload`是基于JavaScript和jQuery的一个插件,它利用Ajax技术实现了文件的异步上传,避免了传统文件上传时页面刷新带来的用户体验问题。通过在后台处理文件上传,前端可以实时显示上传进度和结果,增强了...
- 使用AjaxFileUpload时,可能需要处理跨域问题,确保`secureuri`参数设置正确。 - 对于大文件上传,考虑分块上传和断点续传,以提高用户体验和稳定性。 通过以上步骤,我们可以创建一个基本的基于jQuery、...
在IT行业中,AjaxFileUpload是一种常见的JavaScript库,用于实现异步文件上传,它基于AJAX技术,能够实现在不刷新页面的情况下完成文件上传操作。然而,有时候用户可能会遇到一些问题,比如“ajaxFileUpload重复提交...
该js包是在官方下载的ajaxFileUpload.js基础上所做修改后的包,修改该包所要解决的问题包括: 1、浏览器上传文件后不刷新页面再次点击上传时后台...3、解决了使用ajaxFileUpload除了上传文件外不能传递其他参数的bug。
综上所述,`ajaxFileUpload`是jQuery提供的一种实现异步文件上传的便捷工具,通过合理的配置和使用,可以极大地优化用户的文件上传体验。在实际应用中,根据项目需求灵活调整参数和处理逻辑,确保文件上传功能既安全...
`ajaxFileUpload`是一个JavaScript插件,它允许开发者利用Ajax技术实现异步文件上传,特别是图片上传,无需刷新整个页面。这种方法提高了用户体验,因为它可以在后台处理上传过程,保持页面的实时性和流畅性。 `...
这样,当调用`$.ajaxFileUpload`时,它会找到所有`name`属性匹配的文件输入元素,实现多组多文件上传。 ### 总结 通过以上的改造,我们成功地让AjaxFileupload支持了多文件上传,即使文件输入元素是动态生成的,也...
这个方法通常会接收HttpPostedFileBase类型的参数,这是ASP.NET MVC用来处理文件上传的类。 ```csharp [HttpPost] public ActionResult Upload(HttpPostedFileBase file) { if (file != null && file.Content...
例如,当用户选择文件后,调用ajaxFileUpload方法,指定服务器端处理文件的URL和一些配置参数,如进度条显示、错误处理等。 在Java后端,我们需要一个接收并处理文件上传的Controller。Spring MVC框架是一个常见的...
`ajaxFileUpload`是一个JavaScript插件,它允许用户在不刷新页面的情况下实现异步文件上传,提供了更友好的用户体验。然而,在实际应用中,开发者可能会遇到一些问题,如回调函数总是进入error或success状态,这通常...
`AjaxFileUpload` 是一个基于 jQuery 的插件,它允许用户在不刷新整个页面的情况下实现异步(即AJAX)文件上传,提高了用户体验。下面将详细介绍 `AjaxFileUpload` 插件的使用方法以及与之相关的 `jQuery` 和 HTML ...
使用ajaxFileUpload,开发者只需配置一些参数,如URL、数据、回调函数等,就可以实现无刷新的文件上传。 4. **服务器端处理**:在接收到Ajax上传的文件后,服务器端需要解析接收到的数据并保存文件。这可能涉及到...
**AjaxFileUpload** 是一个JavaScript库,主要用于实现无刷新的文件上传功能,尤其适用于上传图片。这个库在前端处理上提供了高效且用户友好的体验,因为它允许用户在不重新加载整个网页的情况下完成文件上传操作。...
《AjaxFileUpload.js:深入解析前端文件上传技术》 在Web开发中,用户与服务器之间的交互体验至关重要。AjaxFileUpload.js是一个专为实现异步文件上传功能而设计的JavaScript库,它利用Ajax技术实现了无刷新的文件...