php 从服务器删除图像文件

bgtovc5b  于 12个月前  发布在  PHP
关注(0)|答案(3)|浏览(148)

我想知道是否有人可以帮助我。
我把这个页面放在一起,允许用户以画廊格式查看他们上传的图像。
我现在想添加删除功能到每个图像。我已经创建了按钮和它背后的JavaScript,但我真的不知道如何链接'按钮点击'与文件的实际物理删除。
这些图像没有存储在数据库中,而是存储在我的服务器上的两个文件夹中,结构如下:
UploadedFiles/username/locationid/imagename
UploadedFiles/username/locationid/Thumbnails/imagename
我对PHP相对来说是个新手,现在我的知识已经达到了极限,但我当然愿意学习。从我读过的文档来看,我认为我说unlink方法是正确的命令是正确的吗?
但我发现真正困难的是告诉代码找到与当前usernamelocationid匹配的usernamelocationid文件夹,然后删除与$source名称变量匹配的文件。
我只是想知道是否有人可以提供一些指导,请我如何去做这件事。
非常感谢和亲切的问候

nukf8bse

nukf8bse1#

如果你可以将username、locationid和imagesource变量传递给你的脚本,你可以使用unlink()删除这些文件:

$path = 'UploadedFiles/' . $username . '/' . $locationid . '/';

unlink( $path . $imagename );
unlink( $path . 'Thumbnails/' . $imagename );

字符串
因为您正在与文件系统交互,所以您需要确保并清理变量(防止有人使用../来访问文件系统中不需要的部分)。

$username = str_replace( array( '..', '/', '\\', ':' ), '', $username );
$imagename = str_replace( array( '..', '/', '\\', ':' ), '', $imagename );
$locationid= str_replace( array( '..', '/', '\\', ':' ), '', $locationid );

qv7cva1a

qv7cva1a2#

显然你的JavaScript(客户端)将不得不调用一个URL(服务器端)来删除用户选择的图片。我建议现在你静态地做这件事(如果以后你想移动到更动态的东西,转换成aerlog的步骤相当小。
因此,正如Set Sail Media所说,在单击删除按钮时,您必须将用户名和locationID传递给您的服务器。其中一种方法是:
当在HTML/JavaScript中渲染你的画廊时,对于每一张图片,你在它下面有一个将包含所需信息的提交按钮,它将简单地从你的服务器调用删除脚本。你可以做的表单的一个例子是:

<form name="deleteImageX" method="GET" target="your.server.org/deleteImage.php">
        <input type="hidden" name="userName" value="theUserNameAssociatedWithThePicture" />
        <input type="hidden" name="locationId" value="locationOfThePicture" />
        <input type="submit" value="delete"/>
    </form>

字符串
此表单将在隐藏字段中存储所需的值,这些隐藏字段不会显示在网页上,但在按下提交按钮时仍会发送到服务器。
(for这个小故事,这里使用的方法是GET,因为AFAIK HTML不支持GET方法(在我们的情况下,这将是合适的)。
GET方法将调用脚本“your.server.org/deleteImage.php“。在此脚本中,您将拥有通过使用$_GET”username“]和$_GET”locationId“]变量删除图像所需的所有信息(username/locationId)。然后,如您所提到的,您将需要使用unlink方法从服务器中实际删除文件。
最后,一旦完成了这一步,你需要重定向php脚本,以便在删除图片后再次显示图库(例如)。如果你有某种模板引擎,这可以通过调用脚本来完成,或者通过调用php的“header”函数。
我希望这个流程是你所期望的,我希望我对你有所帮助。
问候,

oyjwcjzk

oyjwcjzk3#

$path =“已删除的文件/”. $username .“/”. $locationid .“/”;
Unlink($path . $IMG-20231104-WA0071.jpg); unlink($path . 'Thumbnails/' . $IMG-20231104-WA0071.jpg);

相关问题