Friday 15 February 2013

php - How to Prevent an Upload Script to Move the File AGAIN on Page Reload? -



php - How to Prevent an Upload Script to Move the File AGAIN on Page Reload? -

the form:

<div id="maindiv"> <div id="formdiv"> <h2>multiple image upload form</h2> <form enctype="multipart/form-data" action="" method="post"> first field compulsory. jpeg,png,jpg type image uploaded. image size should less 100kb. <hr/> <div id="filediv"><input name="file[]" type="file" id="file"/></div><br/> <input type="button" id="add_more" class="upload" value="add more files"/> <input type="submit" value="upload file" name="submit" id="upload" class="upload"/> </form> <br/> <br/> <!-------including php script here------> <?php include "upload.php"; ?> </div> </div>

the script:

<?php if (isset($_post['submit'])) { $j = 0; //variable indexing uploaded image $target_path = "uploads/"; //declaring path uploaded images ($i = 0; $i < count($_files['file']['name']); $i++) {//loop individual element array $validextensions = array("jpeg", "jpg", "png"); //extensions allowed $ext = explode('.', basename($_files['file']['name'][$i]));//explode file name dot(.) $file_extension = end($ext); //store extensions in variable $target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext) - 1];//set target path new name of image $j = $j + 1;//increment number of uploaded images according files in array if (($_files["file"]["size"][$i] < 100000) //approx. 100kb files can uploaded. && in_array($file_extension, $validextensions)) { if (move_uploaded_file($_files['file']['tmp_name'][$i], $target_path)) {//if file moved uploads folder echo $j. ').<span id="noerror">image uploaded successfully!.</span><br/><br/>'; } else {//if file not moved. echo $j. ').<span id="error">please seek again!.</span><br/><br/>'; } } else {//if file size , file type incorrect. echo $j. ').<span id="error">***invalid file size or type***</span><br/><br/>'; } } } ?>

this script uses javascript multiple image upload.

when clicking on "page reload" in web browser, after first upload has been done, then script assigns same file new id code name , moves image files second time "uploads" folder.

how prevent script moving image files (with new id code assigned name) second time "uploads" folder?

any suggestions much appreciated.

edit:

so, opted "redirect" same page, form gets cleared out, after submission has been done.

it looks like, way it.

before upload (where displays upload form) can create key (random) , store on server somehere. (temp folder) (using serial number more safe) can include "hidden" value in upload form. script, processing upload, should first key, if exists, can delete , proceed rename / upload / whatever want do. if key gone, can sure it's duplicated request , ignore it.

don't forget clean temp folder every time (let's delete every keys older hr or so)

php

No comments:

Post a Comment