Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
534 views
in Technique[技术] by (71.8m points)

php - Delete Image Files From Server

I wonder whether someone may be able to help me please.

I've put together this page which allows users to view their uploaded images in a gallery format.

I'm now wanting to add the delete functionality to each image. I've created the button and the Javascript behind it, but I'm really not sure how to link the 'button click' with the actual physical deletion of the file.

The images aren't stored in a database but are in two folder locations on my server, in the following structure:

UploadedFiles/username/locationid/imagename and

UploadedFiles/username/locationid/Thumbnails/imagename

I'm relatively new to PHP and I'm now reaching the limits of my knowledge, but certainly willing to learn. From the documentation I've read I think I'm correct in saying that the unlink method is the correct command to use?

But what I'm finding really difficult is telling the code to find the folders with the username and locationid folders which match the current username and locationid and then delete the files which match the $source name variable.

I just wondered whether someone could perhaps provide some guidance please on how I may go about this.

Many thanks and kind regards

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

If you can pass the username, locationid, and imagename variables to your script, you can delete the files using unlink():

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

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

Because you are interacting with your file system, you'll want to be sure and sanitize the variables (prevent someone from using ../../../ to get to unwanted parts of your file system).

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...