【问题标题】:BlueImp fileuploadsubmit serializeArray() sends 1 character responseBlueImp fileuploadsubmit serializeArray() 发送 1 个字符响应
【发布时间】:2014-02-06 04:13:27
【问题描述】:

从 blueimp fileupload 插件成功上传后,其他数据也被提交,但是,我从 Firebug 收到的 json 数据响应显示对每个输入字段的响应被截断为一个字符(字节?) .这是预期的反应吗?我正在使用 jQueryMobile 和 Blueimp 文件上传插件。具体请看:

var formData = $('#uploadform'); console.log(formData.serializeArray());

结果来自 console.log
[Object { name="image_name", value="Don"}, Object { name="image_description", value="Testing"}, Object { name="image_keywords", value="音乐家演员艺术家”},对象 { name="image_nudity", value="0"}, Object { name="cat_id", value="42"}, Object { name="action", value="uploadimage"} ]

来自 blueimp 文件上传提交的 POST 响应

{"files":[{"name":"image2.jpeg","size":114688,"type":"image/jpeg","cat_id":"4","image_name":"D ","image_nudity":"","image_description":"T","image_keywords":"M","action":"u","example":"","user_id":"2","url ":"../models/data/tmp_media/image2.jpeg","thumbnailUrl":"../models/data/tmp_media/thumbnail/image2.jpeg","deleteUrl":"http://myfame/mobile /?file=image2.jpeg","deleteType":"DELETE"}]}

这是 UploadHandler.php 中的代码

protected function handle_form_data($file, $index) {
    global $user_info;
    $file->cat_id = (empty($_REQUEST['cat_id'][$index])) ? "" : $_REQUEST['cat_id'][$index];
    $file->image_name = (empty($_REQUEST['image_name'][$index])) ? "" : $_REQUEST['image_name'][$index];
    $file->image_nudity = (empty($_REQUEST['image_nudity'][$index])) ? "" : $_REQUEST['image_nudity'][$index];
    $file->image_description = (empty($_REQUEST['image_description'][$index])) ? "" : $_REQUEST['image_description'][$index];
    $file->image_keywords = (empty($_REQUEST['image_keywords'][$index])) ? "" : $_REQUEST['image_keywords'][$index];
    $file->action = (empty($_REQUEST['action'][$index])) ? "" : $_REQUEST['action'][$index];
    $file->example = (empty($_REQUEST['example'][$index])) ? "" : $_REQUEST['example'][$index];
    $file->user_id = $user_info['user_id'];

请注意提交的数据和响应将输入截断为一个字符的差异,关于如何修复此问题的任何想法,或者这是一个错误?

【问题讨论】:

  • OK SOLVED 我将所有 $_REQUEST 更改为 $_POST 并解决了这个特殊问题。抱歉,我无法回答我自己的 POST 没有足够的 REP。

标签: jquery jquery-file-upload blueimp


【解决方案1】:

已解决 - 根据您选择的选项将所有 $_REQUEST 更改为 $_POST 或 $_GET,并使用您选择的选项修改函数 handle_form_data($file, $index)。最好检查变量是否为空,如果未设置它们会引发错误。

这样做解决了这个特殊问题。

【讨论】:

    【解决方案2】:

    从 $_REQUEST 更改为 $_POST(在 handle_form_data 函数内)可以解决问题。

    protected function handle_form_data($file, $index) {
        ....
        $file->user = @$_POST['var1'][$index];
        .....
    }
    

    但也要确保您已将输入变量设置为数组,

    <input type="hidden" name="var1[]" value="try">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-28
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 2021-12-22
      相关资源
      最近更新 更多