【问题标题】:Dynamic file uploading&validation with laravel 4.2 and jQuery使用 laravel 4.2 和 jQuery 进行动态文件上传和验证
【发布时间】:2015-10-30 13:34:17
【问题描述】:

我不能使用 Input::file('elementName') 因为我需要通过 jQuery 发布文件以实现动态目的。

我使用 FormData() 发布选定的文件

var data = new FormData();
    jQuery.each(jQuery('#fieldName')[0].files, function(i, file) {
        data.append('fieldName-'+i, file);
    });

    jQuery.ajax({
        url: 'postFile',
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        type: 'POST',
        success: function(data){
            console.log(data);
        }
    });

然后我用 $_FILES 函数获取数据。

但是当我尝试使用 laravel 验证器时,它对我不起作用:

//$file is not null and can get the values with var_dump
$file = $_FILES['fieldName-0'];
$fileValidator = Validator::make(
   array('fileValidation' => $file),
   array('fileValidation' => 'required|mimes:png,jpg,bmp,pdf|max:5000')
);

var_dump($_FILES) 上传随机文件时返回:

array(1) {
  ["fieldName-0"]=>
  array(5) {
    ["name"]=>
    string(7) "aaa.png"
    ["type"]=>
    string(9) "image/png"
    ["tmp_name"]=>
    string(14) "/tmp/php4jQw3L"
    ["error"]=>
    int(0)
    ["size"]=>
    int(35438)
  }
}

结果:验证总是对 mime 类型失败。我也尝试了 image/png image/jpg image/bmg 和 application/pdf 而不是 png jpg bmp pdf。

你提供什么?至少,有没有办法用 jQuery 以格式化的方式发布文件以使用 laravel Input::file 格式?

【问题讨论】:

  • 您在 var_dump 中获得了什么 MIME?
  • 获取名称、大小等的数组,如果您愿意,我可以分享确切的值
  • 你试过这个pathinfo($target_file,PATHINFO_EXTENSION) ???
  • 还没有,我马上反馈
  • @Rayon Dabre,$target_file 应该包括什么?因为它需要一个字符串值。顺便说一句,我用 var_dump($_FILES); 上传了我的帖子。返回值。

标签: javascript php jquery validation laravel-4


【解决方案1】:

这是一个简单的问题,并找到了简单的解决方案。

$file = (Input::file('fieldName-0'));

得到输入,经过验证。

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 2015-04-22
    • 2015-02-11
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    相关资源
    最近更新 更多