当前位置: 首页 > 知识库问答 >
问题:

Angular Laravel删除文件

从经略
2023-03-14

我正在使用Laravel 5.2(用于后端)和AngularJS用于字体端构建一个REST完整的Web应用程序。我通过使用API连接到Laravel后端。现在我偶然发现了以下问题:我可以正确上传图像,但再次删除它是不工作的。

这些文件将上载到Larvel public/images/upload/文件夹中。这是我的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请求向my Laravel控制器中的以下函数发出删除请求。

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删除请求(因此不在URL中)将imageToDelete作为数据发送。但都没有成功。

如何让Laravel(PHP)删除图像?

谢谢你的帮助!

共有2个答案

景凌
2023-03-14

您可能需要检查您的图像路径。当您使用laravel存储或文件facde时,您的文件路径应该是绝对路径,例如public_path($ImageToDelete)

黄凌龙
2023-03-14

你可以试试

$storage = Storage::find($imageToDelete);

if($storage->delete()) {
    return response()->json(['success' => 'success', 'message' => 'File   Deleted']);
}

或者

 if(Storage::destroy($imageToDelete)) {
        return response()->json(['success' => 'success', 'message' => 'File Deleted']);
    }

或者

 $deleteImage = Storage::where('id', $imageToDelete)->delete();
 if($deleteImage){
   return response()->json(['success' => 'success', 'message' => 'File Deleted']);
 }
 类似资料:
  • 问题内容: 如何使用node.js删除文件? http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback 我没有看到删除命令? 问题答案: 我想你要用。 有关更多信息,请参见此处。

  • 通过指定文档的 /index/type/id 路径可以删除文档: $params = [ 'index' => 'my_index', 'type' => 'my_type', 'id' => 'my_id' ]; // Delete doc at /my_index/my_type/my_id $response = $client->delete($params);

  • 我正在使用gradle构建一个Spring Boot应用程序,我希望从war中删除文件,因为该文件将从外部加载(它运行在tomcat容器中,而不是嵌入式的)。 我查看了StackOverflow和Gradle文档,试图找出该做什么,但我不知道该绑定到哪个阶段,以及在创建war之前还是之后排除该文件。处理文件似乎也有多种方法。 我相信Maven使用作为等价物。

  • 如何删除自定义XML文件及其属性和关系文件?,我使用了clear()方法。但不管用。帮帮我.

  • 删除文档是索引过程的另一个重要操作。 当已经索引的内容被更新并且索引变得无效或索引变得非常大时使用该操作,然后为了减小大小并更新索引,执行删除操作。 我们删除包含Field(s) Document(s)到IndexWriter ,其中IndexWriter用于更新索引。 我们现在将向您展示一种逐步的方法,并让您了解如何使用基本示例删除文档。 从索引中删除文档 请按照以下步骤从索引中删除文档 - S

  • 问题内容: 尝试删除不为空的文件夹时,出现“访问被拒绝”错误。我尝试使用以下命令:。 删除/删除不为空的文件夹/目录的最有效方法是什么? 问题答案: 标准库参考:shutil.rmtree。 根据设计,在包含只读文件的文件夹树上失败。如果要删除该文件夹而不管它是否包含只读文件,请使用