私は ng-file-upload に頭を悩ませようとしましたが、あまり成功しませんでした。
バックエンド PHP/Laravel にng-file-uploadを使用して画像をアップロードしようとしています
私は角度コントローラにこれを持っています:
$scope.upload = function (file) {
Upload.upload({
method: 'POST',
url: '/profile/photo/add',
file: file,
sendFieldsAs: 'form'
//fileFormDataName: 'photo'
})
.success(function (data, status, headers, config) {
dd(data);
console.log('file ' + config.file.name + 'uploaded. Response: ' + data);
})
.error(function (data, status, headers, config) {
dd(data);
console.log('error status: ' + status);
})
ng ファイルのアップロード用の HTML テンプレート:
<div ngf-select="upload($file, $event)"
ngf-change="upload($file, $event)"
ngf-pattern="'image/*'"
ngf-capture="capture"
ngf-drag-over-class="{accept:'dragover', reject:'dragover-err', delay:100}"
ngf-validate="{size: {min: 10, max: '1MB'}, width: {min: 200, max:10000}, height: {min: 200, max: 300}, duration: {min: '10s', max: '5m'}, pattern: 'image/*'}"
ngf-keep="false"
ngf-allow-dir="true" class="drop-box"
ngf-drop-available="dropAvailable">Select Photo,
<span ng-show="dropAvailable">Drop/Paste Photo</span>
Laravelでルート/コントローラーも作成しました
public function postAdd(PhotoRequest $request)
{
//Here am just checking if file is valid but it always return false and uploads an unreadable file to /uploads/profile folder
if ($request->file('file')->isValid() && $request->hasFile('file')) {
$request->file('file')->move(public_path('/uploads/profile/'));
return json_encode($request->file('file')->isValid()); //returns false
}else{
return response()->json(['file not found']);
}
}
Chrome コンソールで調べると、出力は次のようになります。
これらの読み取り不可能なファイルがアップロードされました
私は何を間違っていますか?