【问题标题】:$_FILES contains the uploaded file while Laravel request does not$_FILES 包含上传的文件,而 Laravel 请求不包含
【发布时间】:2017-05-18 21:53:04
【问题描述】:

我使用 Laravel 作为 API,使用 AngularJS 作为前端与之交互。我正在尝试使用 ng-file-upload 上传文件,但我遇到了一个奇怪的问题。

全局变量$_FILES 只包含上传的内容,而$request->file('img') 为空,因此自定义请求验证失败,因为它看不到上传的文件。

我找到了几个答案,说明将use Illuminate\Http\UploadedFile; 添加到控制器,这样我就可以访问上传的文件,但到目前为止我还不能。我检查了表单中包含enctype="multipart/form-data" 的代码,但仍然没有任何效果

如何访问文件并同时正确应用验证规则?

角度形式:

<div class="small-6 medium-3 columns small-centered">
    <form name="products.storeForm" ng-submit="products.store()" enctype="multipart/form-data">
        <label>Name</label>
        <input type="text" ng-model="products.product.name" name="name" required>
        <label>Image</label>
        <img ng-src="{{image_source}}">
        <input type="file" name="img" onchange="angular.element(this).scope().setFile(this)" ngf-pattern="image/*" accept="image/*" ng-model="products.product.img">
        <button type="submit" class="button">Submit</button>
    </form>
</div>

角度服务:

service.store = function(product){
    console.log(product.img)
    return Upload.upload({
        url: url,
        headers: { 'Content-Type' : 'application/json' },
        method: 'POST',
        sendFieldAs: 'form',
        fields: {
            name: product.name
        },
        file: product.img,
        fileFormDataName: 'image'
    })
};

【问题讨论】:

  • 您是否尝试过将调试模式设置为 true?可能有错误什么的。
  • 已经设置为true,完全没有错误
  • 你能显示你的表单和控制器代码吗?

标签: php angularjs laravel file-upload


【解决方案1】:

没有办法对此进行测试,但我使用 image 键传递图像这一事实将是我的起点(在您的 Angular 上传服务上):

fileFormDataName: 'image'

但是你试图在 Laravel 中使用 img 键来获取它:

$request->file('img')

【讨论】:

    【解决方案2】:

    只需在 $request-&gt;file('img') 之前的 laravel 控制器方法中尝试下面的测试代码,我希望你能得到答案。

    print('<pre style="color:red;">');
    print_r($request->all());
    print('</pre>');
    exit;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 2014-09-06
      • 2018-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多