upload rename

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
NDH
Δημοσιεύσεις: 403
Εγγραφή: 03 Φεβ 2009 13:56
Επικοινωνία:

upload rename

Δημοσίευση από NDH » 02 Μαρ 2010 01:24

hi pedia exw auto to script parakato kai thelw kathe eikona pou apothikeuete na ginete rename kai na pernei to onoma tis metavlis mou $onoma

Κώδικας: Επιλογή όλων

  <?php
//define a maxim size for the uploaded images in Kb
 define &#40;"MAX_SIZE","1000"&#41;; 

//This function reads the extension of the file. It is used to determine if the file  is an image by checking the extension.
 function getExtension&#40;$str&#41; &#123;
         $i = strrpos&#40;$str,"."&#41;;
         if &#40;!$i&#41; &#123; return ""; &#125;
         $l = strlen&#40;$str&#41; - $i;
         $ext = substr&#40;$str,$i+1,$l&#41;;
         return $ext;
 &#125;

//This variable is used as a flag. The value is initialized with 0 &#40;meaning no error  found&#41;  
//and it will be changed to 1 if an errro occures.  
//If the error occures the file will not be uploaded.
 $errors=0;
//checks if the form has been submitted
 if&#40;isset&#40;$_POST&#91;'Submit'&#93;&#41;&#41; 
 &#123;
 	//reads the name of the file the user submitted for uploading
 	$image=$_FILES&#91;'image'&#93;&#91;'name'&#93;;
 	//if it is not empty
 	if &#40;$image&#41; 
 	&#123;
 	//get the original name of the file from the clients machine
 		$filename = stripslashes&#40;$_FILES&#91;'image'&#93;&#91;'name'&#93;&#41;;
 	//get the extension of the file in a lower case format
  		$extension = getExtension&#40;$filename&#41;;
 		$extension = strtolower&#40;$extension&#41;;
 	//if it is not a known extension, we will suppose it is an error and will not  upload the file,  
	//otherwise we will do more tests
 if &#40;&#40;$extension != "jpg"&#41; && &#40;$extension != "jpeg"&#41; && &#40;$extension != "png"&#41; && &#40;$extension != "gif"&#41;&#41; 
 		&#123;
		//print error message
 			echo '<h1>Unknown extension!</h1>';
 			$errors=1;
 		&#125;
 		else
 		&#123;
//get the size of the image in bytes
 //$_FILES&#91;'image'&#93;&#91;'tmp_name'&#93; is the temporary filename of the file
 //in which the uploaded file was stored on the server
 $size=filesize&#40;$_FILES&#91;'image'&#93;&#91;'tmp_name'&#93;&#41;;

//compare the size with the maxim size we defined and print error if bigger
if &#40;$size > MAX_SIZE*1024&#41;
&#123;
	echo '<h1>You have exceeded the size limit!</h1>';
	$errors=1;
&#125;

$image_name=basename&#40;$_FILES&#91;'image'&#93;&#91;'name'&#93;&#41;;
//the new name will be containing the full path where will be stored &#40;images folder&#41;
$newname="userimg/".$image_name;
//we verify if the image has been uploaded, and print error instead
$copied = copy&#40;$_FILES&#91;'image'&#93;&#91;'tmp_name'&#93;, $newname&#41;;
if &#40;!$copied&#41; 
&#123;
	echo '<h1>Copy unsuccessfull!</h1>';
	$errors=1;
&#125;&#125;&#125;&#125;

//If no errors registred, print the success message
 if&#40;isset&#40;$_POST&#91;'Submit'&#93;&#41; && !$errors&#41; 
 &#123;
 	echo "<h1>File Uploaded Successfully! Wait....</h1>";

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

upload rename

Δημοσίευση από Apostolis_38 » 02 Μαρ 2010 09:25

Αν θυμάμαι καλά το basename δημιουργεί πρόβλημα.
Δοκίμασε να ορίσεις σαν $image_name το

Κώδικας: Επιλογή όλων

$_FILES&#91;'image'&#93;&#91;'name'&#93;

Επίσης κοίταξε μήπως θα έπρεπε να βάζεις και την κατάληξη του αρχείου πάλι στο καινούργιο όνομα.

NDH
Δημοσιεύσεις: 403
Εγγραφή: 03 Φεβ 2009 13:56
Επικοινωνία:

upload rename

Δημοσίευση από NDH » 02 Μαρ 2010 10:15

to script douleuei polu kala metonomasia pos tha kanw ?

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

upload rename

Δημοσίευση από Apostolis_38 » 02 Μαρ 2010 10:27

Αφού δεν κάνει μετονομασία πως δουλεύει πολύ καλά; :D :D :D

Σου έχω γράψει πιο πάνω για το basename. Τσέκαρέ το.
Αλλιώς χρησιμοποίησε την rename ΑΦΟΥ ανεβάσεις το αρχείο.

NDH
Δημοσιεύσεις: 403
Εγγραφή: 03 Φεβ 2009 13:56
Επικοινωνία:

upload rename

Δημοσίευση από NDH » 02 Μαρ 2010 14:05

gia pes mou afto me to rename kati vrika alla akoma den ekana doulia

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

upload rename

Δημοσίευση από Apostolis_38 » 02 Μαρ 2010 14:38

- Απενεργοποίησε το

Κώδικας: Επιλογή όλων

$newname="userimg/".$image_name; 
- Μετά το loop του if(!copied)

Κώδικας: Επιλογή όλων

$newname="test";
rename&#40;$image_name,$newname&#41;
Φυσικά πρέπει να έχεις δικαιώματα 777 για τα αρχεία που ανεβάζεις.
Εχε επίσης κατά νου οτι αν υπάρχει ήδη αρχείο με το νέο όνομα θα γίνει overwrite.

NDH
Δημοσιεύσεις: 403
Εγγραφή: 03 Φεβ 2009 13:56
Επικοινωνία:

upload rename

Δημοσίευση από NDH » 02 Μαρ 2010 14:52

mou leei
Warning: rename(castleart.jpg,test) [function.rename]: No such file or directory in C:\AppServ\www\megalo\picture.php on line 77
kai meta to evala to script sou prin to!copied kai mou to anevase kai to metonomase to arxio alla den vazei katalikse me apotelesma mi anagnorisimo arxeio
ok to eftiaksa vasika evala auto edw $newname="userimg/".$name.".jpg"; kai to rename to katargisa efoson to $newname mpenei sto copy allazei onoma kai ola ok

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες