我想用Laravel上传dropbox Api文件。我已经使用以下代码从我的驱动器上传到dropbox。但在上传时,我得到以下错误:
InvalidArgumentException in Checker.php line 22: 'inStream' has bad type; expecting resource, got IlluminateHttpUploadedFile
如果有人遇到或解决了这个问题,请帮助我解决它。
这是我的控制器代码:
public function dropboxFileUpload()
{
$Client = new Client(env('DROPBOX_TOKEN'), env('DROPBOX_SECRET'));
$dropboxFileName='';
$file = Input::file('image');
$size = Input::file('image')->getSize();
$name = Input::file('image')->getClientOriginalName();
$dropboxFileName = '/'.$name;
$Client->uploadFile($dropboxFileName,WriteMode::add(),$file, $size);
$links['share'] = $Client->createShareableLink($dropboxFileName);
$links['view'] = $Client->createTemporaryDirectLink($dropboxFileName);
print_r($links);
}
这是路由部分:
Route::post('dropboxFileUpload', 'ImportController@dropboxFileUpload');
这里是视图部分:
<form style="border: 4px solid #a1a1a1;margin-top: 15px;padding: 10px;" action="{{ URL::to('dropboxFileUpload') }}" class="form-horizontal" method="post" enctype="multipart/form-data" >
<input type="file" name="image" />
{!! Form::token(); !!}
{!! csrf_field() ; !!}
<button class="btn btn-primary">Import File</button>
</form>
你能试一下吗
$Client->uploadFile($dropboxFileName,WriteMode::add(),$file, $size, null, true);
用于指示该文件是否用于测试目的。这会跳过验证。
第二件事是检查您是否创建了IlluminateHttpUploadedFile
而不是SymfonyComponentHttpFoundationFileUploadedFile
的对象