如何将文件从jQuery上传到php服务器

How to upload files from jQuery to a php server?

本文关键字:php 服务器 jQuery 文件      更新时间:2023-09-26

我想将文件数组的值发送到我的PHP服务器,我尝试这样做,但是jquery返回未定义,当然我仍然是jquery的新手,这里的代码:

for ($i=1;$i<=$stars_settings['attachments']['max_number'];$i++)
{
    $cls = ($i == 1 && in_array('attachments',$_SESSION['iserror'])) ? ' class="isError" ' : '';
    echo '<input id="attachment['.$i.']" type="file" name="attachment['.$i.']" size="50" '.$cls.' /><br />';
}

如何提交此id="attachment['.$i.']"

你不能只用普通的jQuery上传文件。

你需要聪明一点,要么创建自己的方法来处理上传,要么使用其他人创建的库/插件。


例如,您可以执行以下操作:

// Originally solved by Tim Branyen in his drop file plugin
// http://dev.aboutnerd.com/jQuery.dropFile/jquery.dropFile.js
// Allows for datatransfer and file uploads
jQuery.event.props.push('dataTransfer');

然后,当有人将文件从桌面放入潜水时,您可以执行以下操作:

$(document).on('drop', '.attachments', function(event) {
    var dt, files;
    event.preventDefault();
    event.stopPropagation();
    attachments.removeClass('hover');
    dt = event.dataTransfer;
    files = dt.files;
    // Do something with the raw files
});

下面是可用于处理原始文件的函数示例:

function handleFile(file) {
    var reader = new FileReader();
    reader.onload = function(event) {
       var dataURL = event.target.result;
       //upload the file via ajax
    };
    reader.readAsDataURL(file);
}