我想在laravel中上传一个json文件对象,这个对象来自angular js,格式如下:
{
"key": "lfobj2399fe3b",
"lfFile": {},
"lfFileName": "photo-1433354359170-23a4ae7338c6.jpg",
"lfDataUrl": "blob:http://localhost/14044b8b-9dcb-4461-8e2e-cf5337611396",
"element": {
"0": {
"ng339": 198
},
"length": 1
}
}
这是我用来在angular js中实现文件上传的插件:https://github.com/shuyu/angular-material-fileinput
I've try:
if ($request->hasFile('banners')) {
return 'Response::json('file available',$statusCode);
}
检查我的输入中是否有可用的文件,但我一无所获。如果我想把这个对象作为一个对象,我可以使用
来获取它的值$banner = $request->input('banner ');
但是我不能用这个输入上传任何文件。我怎样才能得到这个对象并在laravel中上传它?
处理json对象可以使用:
$request->input('object_name');
对于从angular上传,你可以使用form data request,然后在laravel中处理它,如:
if (isset($_FILES['files']) && $_FILES['files']['error'] == 0) {
############ Edit settings ##############
$UploadDirectory = '../public/images/banners/'; //specify upload directory ends with / (slash)
##########################################
$NewFileName = strtolower($_FILES['files']['name']);
//===========Remove the file if exist==============
if(file_exists($UploadDirectory.$NewFileName)) {
unlink($UploadDirectory.$NewFileName);
}
//===========Remove the file if exist==============
if (move_uploaded_file($_FILES['files']['tmp_name'], $UploadDirectory . $NewFileName)) {
$Access_Directory = "/images/banners/";
$file = $Access_Directory . $user_id . "/". $NewFileName;
return $file;
}
}
我用过这个方法,实际上效果很好。