使用ajax上传文件

问题描述:

在此打上路障。使用ajax上传文件

是我到目前为止有:

<input id="newFile" type="file"/> 
    <span style="background-color:orange;" onClick="newImage()">HEYTRY</span> 

这显然不是很远。

我正在寻找一个基本的方式来加载这个图像到一个变量,将变量转换为可通过URL(ajax)通过的东西,然后通过php完成我的目标,一旦它可以从url中提取位。

并不像我预料的那么容易。

任何帮助将是伟大的。

谢谢

这不适用于每个浏览器,但这是通过AJAX执行多个文件上传的好方法:

function upload_files(entityKey, files, url, progress_callback) { 
    var xhr = new XMLHttpRequest(), formData = new FormData(); 
    xhr.upload['onprogress'] = progress_callback; 

    formData.append('entityKey', entityKey); 
    $.each(files, function(i, file) { formData.append('file[]', file);}); 

    xhr.open("post", url, true); 
    xhr.setRequestHeader("Cache-Control", "no-cache"); 
    xhr.send(formData); 
} 

entityKey是服务器上参数的示例。 “文件”参数来自文件类型输入表单元素的“文件”属性(作为支持多个数组的数组)。 'progress_callback'参数是一个函数,它接受一个具有(至少)'loaded'和'total'字段(单位是字节)的对象。它不关心服务器响应。

我使用这个插件上传文件。 http://www.uploadify.com/

这有帮助吗?

+0

谢谢,但我真的想编码,并了解发生了什么 – 2010-12-17 03:32:46

+0

@jason为什么要重新发明*? – 2010-12-17 03:56:29

我使用这个插件上传文件。

FORM PLUGIN

u可以使用这个插件的方法来传递您的$ _FILES数据,并在以后使用PHP代码:

$('.yourFormUpload').ajaxSubmit(options); 

的选项变量u可以看到它的文档