图像上传问题Laravel 4 - 文件已损坏

时间:2014-08-14 11:06:14

标签: php file-upload laravel laravel-4

我正在尝试upload image使用laravel4,我已成功设法从file上传form并存储在我在公共文件夹中选择的目录中。然而,我遇到的问题是查看图像。我正在Netbeans进行开发,当我尝试打开新上传的图像时,我被告知图像已损坏。

这是我的表格:

<form action="{{ action('BookController@handleCreate') }}" method="post" role="form" enctype="multipart/form-data">
        <div class="form-group">
            <label>Name</label>
            <input type="text" class="form-control" name="name" />          
        </div>
        <div class="form-group">
            <label>Description</label>
            <input type="textarea" class="form-control" name="desc" />          
        </div>
        <!-- Img upload -->
        <input type="file" name="img"/>
        <input type="submit" value="Create" class="btn btn-primary" />
        <a href="{{ action('BookController@index') }}" class="btn btn-link">Cancel</a>
    </form>

这是我的controller

public function handleCreate(){
        $book = new Book;

        $book->book_name = Input::get('name');
        $book->book_desc = Input::get('desc');

        $destinationPath = public_path().'/uploads/covers/';//Set up destination path
        $file = Input::file('img');//Get the file
        $extension = $file->getClientOriginalExtension();//Get the extension
        $filename = str_random(12).".".$extension;//Create a filename
        $upload_success = $file->move($destinationPath, $filename);//Move the file to the destination

        $pathToFile = '/uploads/covers/'.$filename;
        echo $pathToFile;

        //If successful.....
        if($upload_success){
            $book->book_cover = $filename;//store value in db
            $book->save();//Save the book
            return Redirect::action('BookController@index');
        }else{//Else return to form with an error message....
            return Response::json('error', 400);
        }
    }

这是我的图片的path

/uploads/covers/VFBDJPqEdI6P.jpg

我的计划是将此路径存储在database中,然后使用它在屏幕上显示图像。

我不知道为什么,但是当我上传文件时,他们已经被破坏了,如果有人可能建议我可以解决这个问题,我会很感激。

此致

1 个答案:

答案 0 :(得分:0)

我试过这个并且工作时没有丢失任何内容

 Storage::put($pathToFile,file_get_contents($request->file('img')->getRealPath()));