【问题标题】:Need to delete uploaded image file from image folder需要从图像文件夹中删除上传的图像文件
【发布时间】:2021-03-12 21:45:34
【问题描述】:

我需要从图片文件夹中删除上传的图片。事实上,我的图像文件夹在公共目录中并不存在。基本上,它位于项目根目录下,例如 (projectfolder->images)。此外,我的 JavaScript 和 CSS 文件也存在于根目录中。这就是为什么我使用base_path() 函数并返回真实的文件路径,但没有删除图像的原因。

public function deleteUploadGallery(Request $request)
{
    $name = $request->name;
    $authUser = Auth::User()->toArray();
    $match = ['user_id' => $authUser['id'], 
        'image_type' => 'gallery', 'image_name' => $name];
    
    $originalPath = base_path('images/' . $request->name);
    $thumbnailPath = base_path('images/thumbnail/' . $request->name);
    
    if (File::exists($originalPath)) {
        @unlink($originalPath);
    }
    if (file_exists($thumbnailPath)) {
        @unlink($thumbnailPath);
    }
    
    $userMedia = UsersInfoMedia::where($match)->first();
    $userMedia->delete();

    return response()->json(['success' => 'Image Deleted Successfully.']);
}

【问题讨论】:

  • 为什么取消链接前有@?
  • 我没看清楚,你问我为什么要在删除数据库之前使用unlink code?如果这是您的问题,我也已经在添加数据库删除代码后使用取消链接代码,但它不起作用,此外,我也在使用简单的 unlink() 检查此代码,但没有删除文件跨度>
  • 基本上我的 if 条件 (File::exists($originalPath)) 和 if(file_exists($thumbnailPath)) 都不起作用,当代码运行时,它涉及到 else 条件。
  • 那是说你的文件路径不对?您可以通过记录路径并检查值来确认吗
  • 实际上我已经打印并回显了变量 $originalPath 和 $thumbnailPath,两者都返回了真实路径。我也在图片上传中使用这些相同的路径,但是当我使用这些路径进行取消链接时,它不起作用

标签: laravel


【解决方案1】:

我就是这样用的,对我来说效果很好

use File;

在标题部分上方

$originalPath  = getcwd()."/images/{$request->name}";

if(File::exists($originalPath)){
    File::delete($originalPath);
}

【讨论】:

  • unlink(/home/myther8/public_html/officespace/images/1615822828109albertone.jpeg): No such file or directory" found. 我也使用了 File::delete() 方法,但文件不是已删除
  • 不客气。当有人因我的努力而受益时,我很高兴
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 2023-03-28
  • 1970-01-01
  • 2011-07-23
相关资源
最近更新 更多