当前位置: 首页 > 知识库问答 >
问题:

Laravel文件上传混乱

终翰学
2023-03-14

因此,我试图在Laravel框架内与旧的文件上传做斗争,但有点迷失了方向。我已经设法让上传工作,所以文件上传并保存到一个随机字符串名的资产文件夹。

这是表格:

<form action="{{ URL::route('account-upload') }}" method="post">
{{ Form::label('file','Upload File') }}
{{ Form::file('file') }}
<br />
{{ Form::submit('Upload') }}
{{ Form::token() }}
</form>

这是路线:

Route::get('/account/upload', array(
    'as' => 'account-upload',
    'uses' => 'AccountController@getUpload'
));


    Route::post('/account/upload', function(){

        if (Input::hasFile('file')){
            $dest = 'assets/uploads/';
            $name = str_random(6).'_'. Input::file('file')->getClientOriginalName();
            Input::file('file')->move($dest,$name);

            return Redirect::to('/account/upload')
                ->withGlobal('Your image has been uploaded');
        }

    });

这是AccountController内部的方法:

public function getUpload(){
    return View::make('account.upload');
}

public function postUpload() {
     $user  = User::find(Auth::id());
     $user->image  = Input::get('file');
}

我现在试图启用,以推动字符串名称到数据库,也与上传它的用户相关联,并显示为他们的个人资料图像?Ay指针会很棒!

我在数据库中创建了一行名为文件的文本类型......我不确定在这一点上如何存储和查看图像。

共有2个答案

燕实
2023-03-14

为了上传文件,您需要enctype="Multipart/form-data"作为上的属性。

如果您使用Form::open()方法,您可以只传递"file"=

接下来,在实际处理文件时,需要使用类似于storage\u path()public\u path()的方法,并在移动文件时给出文件目标的绝对路径。

还有一个提示:您可以通过调用Auth::user()来获取已编写用户的模型

诸修伟
2023-03-14

试试这个

// the view
{{ Form::open(['route' => 'account-upload', 'files' => true]) }}
    {{ Form::label('file','Upload File') }}
    {{ Form::file('file') }}
    <br />
    {{ Form::submit('Upload') }}
{{ Form::close() }}


// route.php
Route::get('/account/upload', 'AccountController@upload');

Route::post('/account/upload', [
    'as'   => 'account-upload',
    'uses' => 'AccountController@store'
]);


// AccountController.php
class AccountController extends BaseController {

    public function upload(){
        return View::make('account.upload');
    }

    public function store() {
        if (Input::hasFile('file')){

            $file = Input::file('file');
            $dest = public_path().'/assets/uploads/';
            $name = str_random(6).'_'. $file->getClientOriginalName();

            $file->move($dest,$name);

            $user      = User::find(Auth::id());
            $user->image  = $name;
            $user->save();

            return Redirect::back()
                ->withGlobal('Your image has been uploaded');
        }
    }
}

// and to display the img on the view
<img src="assets/upload/{{Auth::user()->image}}"/>
 类似资料:
  • 我想做一个表单上传一个文件,一个excel文件,这是我的html 还有php 但我一直在 我试过用$file-

  • 问题内容: 我的laravel ajax应用程序出现问题, 我无法通过ajax POST上传图像/文件。 这是我的代码。 阿贾克斯 刀片模板… 控制器.. 路线.. 我的代码有什么错误? 我无法在laravel控制器中获取文件信息。 我该如何解决这个问题…? 问题答案: 有两点要更改: 从以下位置更改您的js文件: 至: 因为您想发送整个表格。 在您的html中: 在文件输入字段中添加名称 至:

  • 我无法在Laravel 5中上载excel文件。 我有以下错误: VerifyCsrfToken中的令牌不匹配异常。php行 看法 控制器 当我尝试上传txt文件时,一切都好,但Excel文件不行。 有什么想法吗? 可能是nginx的问题: 2015/12/09 19:30:32[错误]24145#0:*1233663 FastCGI在标准中发送:“PHP消息:PHP警告:请求(正文)文件:打开(

  • 今天我想把我的一个项目从我的开发环境转移到我的生产环境。 当我试图通过FTP上传它时,我已经看到几乎110k文件正在更新。 有人能告诉我这是否真的是必需的,或者我是否错过了一些编译功能等来启动和运行它吗? 干杯,费边

  • 我的控制器中有以下代码: 通过中的调用: 我正在使用postman测试我的应用程序。 标题: 车身: 生的: -----WebKitFormBoundary7MA4YWXKTRZU0GW内容-配置:表单-数据;name=“上载[]”;filename=“banana.png”content-type:image/png png数据在此处。-----WebKitFormBoundary7MA4YWX

  • 我试图通过Laravel5.4中的Mix(以前是Elixer)(使用https://Laravel.com/docs/5.4/Mix)设置一个SASS到CSS编译器。一切工作正常,它可以编译,我可以通过npm设置一个观察器,但是可以通过views/layout/app.blade.php文件引用它,比如: 不管用。在我的浏览器中,它当然显示为: 这是一条错误的道路。它应该引用http://loca