php - Ajax 文件上传在 Chrome 中有效,但在 Firefox 中无效

标签 php javascript jquery xmlhttprequest-level2

使用 XMLHttpRequest Level 2 我想上传一个文件。 我正在使用 jQuery,所以我想优先使用 jQuery。

所以我写了下面的代码(coffescript,但熟悉javascript的人应该很容易阅读)

fileToUpload = event.currentTarget.files[0]

data = new FormData()
data.append("uploadedfile", fileToUpload) 

$.ajax({
    type: 'POST',
    url: url,
    data: data,
    contentType: false,
    processData: false,
    mimeType: 'multipart/form-data',
})

使用该代码,在服务器端用 PHP 我做了一个 `

使用 Firefox 17.0.1 我什么也得不到。 $_FILES 为空,使用 Chromium 22.0 我得到上传的文件(格式奇怪,但至少是某种格式)

Array
(
    [uploadedfile] => Array
        (
            [name] => filename.txt
            [type] => application/octet-stream
            [tmp_name] => /tmp/phpWwenhc
            [error] => 0
            [size] => 189
        )

)

有谁知道这是否是 Firefox 的错误?有解决方法吗?难道我做错了什么? 我搜索了一个类似的问题,但我发现的所有建议答案都不适合我(不适用于 Firefox,没有使用 xhr 级别 2,等等)

提前致谢。

请: 我不关心 IE 或旧版本。 iframe 解决方案和插件都不是。只是 XmlHttpRequest Level 2。对于那些没有听说过它的人,请看一看:https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects

最佳答案

删除mimeType 参数,浏览器将生成具有所需边界的正确 mime 类型。

关于php - Ajax 文件上传在 Chrome 中有效,但在 Firefox 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14113082/

相关文章:

javascript - 如何在执行后杀死所有函数?

javascript - Jquery-ui 和动画错误

javascript - 4-Stat CSS Javascript 按钮

jquery - 在不刷新屏幕的情况下,使用 jQuery 更改不透明度在 Chrome 或 Safari 中不起作用

javascript - 如何在 jQuery 选择器中用变量替换字符串以使用属性值?

php - 匹配mysql中的日期并给出结果

javascript - 如何将 PHP 放入 Javascript 中?

javascript - 使用 jQuery 将每个字符包装在 except 标签中

php - INSERT 结果为 KEY PRIMARY 的重复条目 '0'

php - 在 PHP 中创建一个 json 对象