【问题标题】:How to upload files from jQuery to a php server?如何将文件从 jQuery 上传到 php 服务器?
【发布时间】:2013-11-05 17:13:38
【问题描述】:

我想将文件数组的值发送到我的 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 中定义了例如 var test = $("#attachment").value();但在我的情况下 attachmment['.$i.']
  • @HassanMostafa 你想在 jquey 中用这个数组实现什么。
  • 我想根据上面for循环中的$stars_settings['attachments']['max_number'] 上传数组中的文件
  • $( 'input:file' ).each(...)

标签: javascript php jquery upload


【解决方案1】:

您不能仅使用普通的 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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多