使用Laravel 5.1插入而不重新加载页面

时间:2015-11-21 19:31:26

标签: php laravel insert dropzone.js

我一直在使用Dropzone几天,我遇到了一些问题。这个想法是:用户选择他的文件,上传并进入他的文件目录,文件的一些属性(大小,名称)进入数据库。我不能这样做,因为当用户上传文件时,页面不会刷新,Input::file('file')中没有任何内容。我不能这样做。这是我正在使用的代码:

class UploadController extends Controller {
    public function upload() {
        if(Input::hasFile('file')){
          $file = Input::file('file');
          $user = Auth::id();
          $file->move('uploads/'.$user, $file->getClientOriginalName());
        }
        else {
          echo 'Please select a file first'; 
        }    
     }

以下是File.php模型中的两个函数

public function getFileId(){
    $fileName = Input::file('file')->getClientOriginalName();
    $files = File::where('filename', $fileName)->get(); //$fileName
    foreach ($files as $file) {
        $fileid = $file->fileid;
        echo $fileid.'<br>';
        Input::file('file')->fileid = $file->fileid; // put fileid as an attribute to the object file for futher usage  
    }       
}
public function incrementFileId(){
    $files = File::orderBy('fileid', 'desc')->take(1)->get();
    foreach($files as $file){
        echo $file->fileid + 1 .' incremented file id<br>';
    }
}

那么我的第三个模型函数应该如何上传文件的属性呢? DropZone使用Ajax和我虽然我应该从那里获取文件属性但是可以这样做吗?!

1 个答案:

答案 0 :(得分:0)

使用Request代替Input

    public function upload(Request $request)
    {
      if ($request->hasFile('file'))
      {
        $file = $request->file('file');
        $file->move('uploads/'.$user, $file->getClientOriginalName());
      }