php - jqueryForm 和空上传

标签 php jquery http jqueryform

在这个问题上挠头太久了:Using jquery.form, ( http://malsup.com/jquery/form ) with PHP ... 我的 $_FILES['someimage'] 已设置,但错误号是总是UPLOAD_ERR_NO_FILE,大小也是0。

JavaScript:

$('form input[type=file]').change(function () {
    $(this).clone().appendTo('#imgform');
    $('#imgform').ajaxForm();
    $('#imgform').ajaxSubmit({
        type: 'POST'
    });
});

附加到:

<form id="imgform" method="POST" action="/api/images.php" enctype="multipart/form-data"></form>

来自另一个具有标准文件输入的表单。

PHP 日志是干净的,但是 var_dumping $_FILES 总是显示索引设置为表单元素的名称...但没有数据。

谢谢大家! (抱歉,我知道在这些部分出现类似 jQuery 的问题太频繁了)。

编辑 我找到了 Clone a file input element in Javascript其中包含更多信息和建议的替代方案。

我决定为非 JavaScript 浏览器提供单一表单,而 JavaScript/jQuery 将单一表单分为三种形式:

头部表单->文件上传表单->尾部表单

然后我可以异步发布文件上传,当尾部的提交被点击时,将表单粘合到一个 POST 中,因为它们只是文本字段。

最佳答案

当我尝试运行它时,我看到了两件事。由于您是克隆然后附加,我想知道您的文件输入是否存在于表单的上下文中。否则,$('form input[type=file]') 将永远找不到要克隆的元素。

不过,也许最大的问题在于浏览器处理文件上传控件的方式。您不能以编程方式在文件输入控件上设置值 - 否则,作为 Web 开发人员自动将文件上传值设置为“c:\Files\MyPasswordFile.txt”并自动向用户不可见地提交表单将是微不足道的。

当我将您的代码更改为:

<input type="file" name="imageFile" />
<form id="imgform" method="POST" action="/api/images.php" enctype="multipart/form-data">

</form>

<script>
  $('input[type=file]').change(function() {
    alert("ACTION");
    $(this).clone().appendTo('#imgform');
    //$('#imgform').ajaxForm();
    //$('#imgform').ajaxSubmit(
    //        {
    //          type: 'POST'
    //        }
    //    );
  }); 
</script>

我可以看到上面的行为 - 该字段被克隆并附加 - 但它没有任何值(value)。由于部分克隆过程涉及设置字段值 - 这将违反该安全限制并因此失败。

关于php - jqueryForm 和空上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2856081/

相关文章:

php - 带限制的 SQL 查询在 phpmyadmin 中不起作用

javascript - 如何使用 jQuery 提交登录表单

javascript - 未在浏览器中设置响应 header 中的 Set-Cookie

c# - 如何获取 HttpContext 调用的 Web 服务方法?

javascript - 如何使用 jQuery 或 C# 获取 iframe 的内容?

python - 如何在 python 中解析 HTTP 请求(自定义 Web 服务器)

php - PDO utf8_encoding 我的文本字符串在 INSERT 中两次?

php - Laravel 5. app.blade.php 中的动态数据 : BaseController or ViewComposers?

php - 带有 Xdebug 的 VS Code 不显示完整的 PHP 变量值

javascript - jQuery 中操作一组 id 的函数