【发布时间】:2016-09-10 22:50:53
【问题描述】:
我正在使用 Laravel 5.2(用于后端)和 AngularJS 用于字体端构建一个完整的 REST 网络应用程序。我使用 API 连接到 Laravel 后端。现在我偶然发现了以下问题:我可以正确上传图像,但再次删除它不起作用。
文件被上传到 Larvel public/images/uploaded/ 文件夹。 这是我的 Angular 服务(单击“删除”按钮时触发的 http 请求)其中变量 imageToDelete 是图像的相对路径。。到目前为止一切顺利,请求正在触发并且 imageToDelete 变量已填充。
function deleteProfileImage(imageToDelete) {
return $http({
method: 'DELETE',
url: '/api/pictures/' + imageToDelete
})
.then(deleteProfileImageSuccess)
.catch(deleteProfileImageError);
function deleteProfileImageSuccess(response) {
$log.info('Deleting profile picture Success.');
console.log(response);
return response;
}
function deleteProfileImageError(error) {
$log.info('Deleting profile picture failed because: ' + error.data);
return error;
}
}
这个有角度的 HTTP 请求会向我的 Laravel 控制器中的以下函数发出 DELETE 请求。
public function destroy($imageToDelete)
{
if(Storage::delete($imageToDelete)) {
return response()->json(['success' => 'success', 'message' => 'File Deleted']);
} else {
return response()->json(['error' => 'Deleting Image failed.'])
->setStatusCode(Response::HTTP_BAD_REQUEST);
}
}
在这里,Storage::delete($imageToDelete) 什么也不做。它不会删除 Angular DELETE 请求提供的文件。
我已经尝试过的一些事情:
使用 File::delete() 而不是 Storage::delete() 使用 unlink() 代替 Laravel Facades; 使用 HTTP DELETE 请求将 imageToDelete 作为数据发送(所以不在 URL 中)。 但都没有成功。
如何让 Laravel (PHP) 删除图片?
感谢您的帮助!
【问题讨论】:
-
不是很清楚你的具体问题是什么。见How to Ask
-
感谢您的评论。我已经更新了我的问题。希望现在一切都清楚了。
-
不....不是真的。一个好的问题需要付出一些努力才能首先正确解释问题,并提供您可以提供的任何故障排除详细信息,并解释哪些部分有效,哪些部分无效