laravel 收不到iOS上传的文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel 收不到iOS上传的文件相关的知识,希望对你有一定的参考价值。

参考技术A 首先使用 request 接收到图片然后保存;保存在了 storage/app/public 文件夹下;然后根据文档想要公开访问该文件夹,需要创建一个符号链接;然后运行 php artisan storage:link 创建了符号链接;此时 public 文件夹下多了一个 storage 文件夹;里边的文件就是 storage/app/public 里的文件。

Laravel 5 文件上传验证

【中文标题】Laravel 5 文件上传验证【英文标题】:Laravel 5 file upload validation 【发布时间】:2017-02-12 18:27:11 【问题描述】:

我正在使用 laravel 内置的文件上传功能将视频上传到我的网站。我已经成功上传了文件,但是当我的朋友尝试上传视频时,他收到一个错误“validation.uploaded”,我不知道为什么会这样,我一直在试图找到错误,但我可以'找不到它。我们都在 Firefox 和 chrome 中尝试过,但只有我的朋友得到了它。请帮助这是我的代码:

保存视频功能

protected function saveVideo(UploadedFile $video)

    $fileName = str_random(40);

    $fullFileName = $fileName.'.'.$video->guessClientExtension();

    $video->storeAs('videos', $fileName);

    return $fullFileName;

从表单保存

public function update(Request $request, $id)

    //dd($request->all());
    $video = Video::findOrFail($id);
    $this->validate($request, [
        'title' => 'required|unique:lessons,title,'.$video->id,
        'lesson_lists' => 'required',
        'description' => 'required'
    ]);
    $data = $request->only('title', 'description','lesson_lists');
    $data['slug'] = str_slug($request->title);

    if($request->hasFile('image'))
        $data['image'] = $this->saveImage($request->file('image'));
        if($video->image !== '') $this->deletePhoto($video->image);
    

    if($request->hasFile('video'))
        $data['video'] = $this->saveVideo($request->file('video'));
        if($video->video !== '') $this->deleteVideo($video->video);
    

    //$data['lesson_id'] = implode($request->get('lesson_lists'));
    $video->update($data);
    Session::flash("flash_notification", [
        "level"=>"success",
        "message"=>"Berhasil menyimpan $video->title"
    ]);

    return redirect()->route('video.index');

【问题讨论】:

您是否尝试过使用相同的文件?检查他的视频的文件大小并检查服务器最大上传文件大小是多少(并检查您的表单是否也有大小限制)。 @MagnusEriksson 谢谢,显然它只是服务器上传限制配置。更改后,它就像一个魅力 通常是这样... :) 对我来说不是这样,有什么问题?请问还有什么解决办法吗? 【参考方案1】:

实际上,如果您尝试下载的文件大小超过“upload_max_filesize”,Laravel 会显示此验证错误,因此您必须打开 php.ini 文件并设置如下选项:

post_max_size = 500M

upload_max_filesize = 500M

注意:如果您使用 wamp 或 xamp,请不要忘记重新启动它,否则请重新运行命令:

php 工匠服务

【讨论】:

【参考方案2】:

Laravel 响应 422 Unprocessable Entity 响应正文包含 validation.uploaded 由于超出上传大小限制。尝试为以下可能的参数设置适当的值(例如 10M):

/etc/php.ini (PHP):

upload_max_filesize 10M post_max_size 10M

.htaccess(阿帕奇):

php_value upload_max_filesize 10M php_value post_max_size 10M

然后重启 Apache sudo systemctl restart httpd.service (Cent OS 7)

【讨论】:

以上是关于laravel 收不到iOS上传的文件的主要内容,如果未能解决你的问题,请参考以下文章

iOS Post上传图片, 文件流的形式

laraver框架学习------工厂模型填充测试数据

在 laravel 5.2 中找不到类“Html”

thinkphp提交表单后 $_POST收不到数据,很是郁闷??????????????

我想自学laraver,请诸位前辈给一些建议,谢谢

enctype="multipart/form-data" 上传图片的时候发现加了这个后表单post的数据后台收不到,求解决方案