ugrás a tartalomhoz

File feltöltő nerandom nevet adjon

Meli · 2010. Okt. 3. (V), 22.35
Sziasztok

Egész nap a neten keresgéltem egyszerű, átlátható filefeltöltőt, és egy olyat találtam amit énis használni tudok, és elég jó.

Az a baj hogy ez meg random névvel menti a feltöltött filet.

Tudna valaki segíteni, hogy mit töröljek, vagy írjak át hogy az eredeti file név maradjon?
  1. <?php  
  2. ///////////////////////////////////////////////////////////////////////////////////////  
  3. // PHPUpload                                                                         //  
  4. ///////////////////////////////////////////////////////////////////////////////////////  
  5. // License: You are not to sell or distribute this software without permission       //  
  6. // Main Author: Brian                                                                //  
  7. // Copyright reserved                                                                //  
  8. ///////////////////////////////////////////////////////////////////////////////////////  
  9.   
  10.   
  11. //////////////////////////////  
  12. //Quick File Uplaod Class File  
  13. //////////////////////////////  
  14.   
  15. class Upload{  
  16.   
  17. //set these values  
  18. //////////////////  
  19.   
  20. var $uploadpassword = 'Jelszó a feltöltéshez';   //for you added security againt bots  
  21. var $storage_folder = './files';  
  22. var $site_url       = './files';   //must be same as item above  
  23. var $filesize_limit = 104857600; //= 100MB in bytes  
  24.   
  25. var $allowed_extensions = array('gif',  
  26.                                 'jpg',  
  27.                            'bmp',  
  28.                                 'png',  
  29.                                 'jpeg');  //this checks the files extension but is not enough security on its own, hence the next section below  
  30.   
  31. var $allowed_file_types = array('image/gif',  
  32.                                 'image/jpg',  
  33.                                 'image/jpeg',  
  34.                            'image/pjpeg',  
  35.                            'image/x-png',  
  36.                            'image/bmp',  
  37.                                 'image/png',  
  38.                                 'application/x-gzip',  
  39.                                 'multipart/x-gzip',  
  40.                                 'application/x-compressed',  
  41.                                 'application/x-zip-compressed',  
  42.                                 'application/zip',  
  43.                                 'multipart/x-zip',  
  44.                                 'application/x-tar',  
  45.                                 'application/gnutar',  
  46.                            'application/pdf',  
  47.                                 'video/mpeg',  
  48.                                 'application/octet-stream');  //checks files MIME type for added security          
  49.    
  50.    
  51.    
  52. ///////////////////////////////////////////DO NOT EDIT BELOW THIS LINE /////////////////////////////////                                
  53. //uplaoded file info  
  54. var $filename;  
  55. var $file_content;  
  56. var $filesize_actual;  
  57. var $filetype_actual;  
  58. var $password;  
  59. var $filelink;  
  60. var $message;  
  61. var $show_error;  
  62.   
  63.   
  64.   
  65. //initiate the uplaod class  
  66. ///////////////////////////  
  67.   
  68. function Upload(){  
  69.   
  70.   
  71. $this->password = htmlspecialchars($_POST['password']);  
  72. $this->message = '';  
  73. $this->filelink = '';  
  74. $this->load_error ='';  
  75. $this->show_error = false;  
  76.   
  77.   
  78. //check if form has been submitted  
  79. //////////////////////////////////  
  80. if (!$_FILES){  
  81. $this->showview();  
  82. }else{  
  83.   
  84. //Form has been submitted  
  85. $this->filename = $_FILES['myfile']['name'];  
  86. $this->file_content = $_FILES['myfile']['tmp_name'];  
  87. $this->filesize_actual = $_FILES['myfile']['size'];  
  88. $this->filetype_actual = strtolower($_FILES['myfile']['type']);  
  89.   
  90. //check passowrd  
  91. if ($this->password != $this->uploadpassword || $this->password ==''){  
  92. $this->show_error = true;  
  93. $this->message = 'Rosz a jelszavad!';  
  94. $this->showview();  
  95. }  
  96.   
  97.   
  98. //check file has been selected for upload  
  99. if ($this->filesize_actual <= 0){  
  100. $this->show_error = true;  
  101. $this->message = 'Filet válassz';  
  102. $this->showview();  
  103. }  
  104.   
  105.   
  106. //check file size  
  107. if ($this->filesize_actual > $this->filesize_limit){  
  108. $this->show_error = true;  
  109. $this->message = 'Nemjó, túl nagy a kép';  
  110. $this->showview();  
  111. }  
  112.   
  113. //check file type  
  114. if (!in_array($this->filetype_actual, $this->allowed_file_types)){  
  115. $this->show_error = true;  
  116. $this->message = 'Csak képet tölthetsz fel';  
  117. $this->showview();  
  118. }  
  119.   
  120. //check file extension  
  121. $file_extension = end(explode('.',$this->filename));  
  122. if (!in_array($file_extension$this->allowed_extensions) || $file_extension ==''){  
  123. $this->show_error = true;  
  124. $this->message = 'Csak képet tölthetsz fel';  
  125. $this->showview();  
  126. }  
  127.   
  128.   
  129. //check if storage folder is writable  
  130. if (!is_writeable($this->storage_folder)){  
  131. $this->show_error = true;  
  132. $this->message = 'A mappa most zárva van';  
  133. $this->showview();  
  134. }  
  135.   
  136.   
  137. //finished, save file  
  138. //////////////////////  
  139. $filename_random_code = $this->randomcode();  
  140. $filename_random = $this->storage_folder.'/'.$filename_random_code.'.'.$file_extension;  
  141. if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $filename_random)) {  
  142. $this->show_error = true;  
  143. $this->message = 'Nem jó valami, próbáld újra';  
  144. $this->showview();  
  145. }else{  
  146. $this->filelink = $this->site_url.'/'.$filename_random_code.'.'.$file_extension;  
  147. $this->show_error = true;  
  148. $this->message = 'Késsz, ezen a linken ellenőrizheted.';  
  149. $this->showview();  
  150. }  
  151.   
  152. //end  
  153. }  
  154. }  
  155.   
  156.   
  157.   
  158. /////////////  
  159. //Show page  
  160. /////////////  
  161. function showview(){  
  162.   
  163. if ($this->show_error==true){  
  164.   
  165. $load_error = '<div align="center"><center><table border="0" cellpadding="0" cellspacing="0" width="653">  
  166.     <tr><td bgcolor="#FFFFFF" colspan="2" width="611">&nbsp;</td></tr></center><tr><td bgcolor="#FFFFFF" width="156">  
  167.       <p align="right"><b><font face="Arial" size="2">&nbsp; <img border="0" src="icon.gif" width="25" height="25">&nbsp;  
  168.       </font></b></td><center><td bgcolor="#FFFFFF" width="493"><font face="Arial" size="2" color="#006699">'.$this->message.'</font>  
  169.  </td></tr></table></center></div>';  
  170. }  
  171.   
  172. echo '  
  173. <form action="index.php" method="post" enctype="multipart/form-data" ><div align="center"><center><table border="0" cellpadding="0" cellspacing="0" width="446" height="89" style="border: 1px solid #EBEBEB">  
  174. <tr><td width="442" colspan="2" bgcolor="#EBEBEB" height="26"><p align="center"><b><font face="Arial" size="2"> Kép feltöltés </font></b></td>  
  175. </tr><tr><td width="114" height="21" bgcolor="#FFFFFF"></td><td width="328" height="21" bgcolor="#FFFFFF"></td></tr></center><tr><td width="114" height="21" bgcolor="#FFFFFF">  
  176. <p align="right"><font face="Arial" size="2">Jelszó &nbsp;&nbsp;&nbsp;</font></td><center><td width="328" height="21" bgcolor="#FFFFFF"><input type="password" name="password" size="20"></td>  
  177. </tr></center><tr><td width="114" height="21" bgcolor="#FFFFFF"><p align="right"><font face="Arial" size="2">Kép&nbsp;&nbsp; </font></td>  
  178. <td width="328" height="21" bgcolor="#FFFFFF"><input name="myfile" type="file" size="30" /></td></tr><tr><td width="114" height="21" bgcolor="#FFFFFF"></td>  
  179. <td width="328" height="21" bgcolor="#FFFFFF"></td></tr><tr><td width="114" height="21" bgcolor="#FFFFFF">&nbsp;</td><td width="328" height="21" bgcolor="#FFFFFF"><input type="submit" value="Mehet" name="B1"></td>  
  180. </tr><tr><td width="114" height="21" bgcolor="#FFFFFF"><p align="right"></td><center><td width="328" height="21" bgcolor="#FFFFFF">&nbsp;</td></tr>  
  181. </table></center></div><!-- error table -->'.$load_error.'<!-- error table end --><!-- link table --><div align="center"><center><table border="0" cellpadding="0" cellspacing="0" width="653" height="40">  
  182. <tr><td height="22"></td></tr><tr><td height="18"><p align="center"><a href="'.$this->filelink.'" target="_blank"><font face="Arial" size="4">'.$this->filelink.'</font></a></td>  
  183. </tr></table></center></div><!-- link table end --><p align="center">&nbsp;</p></form>';  
  184.   
  185. die();  
  186.   
  187. }  
  188.   
  189.   
  190.   
  191. //////////////////  
  192. //random code  
  193. //////////////////  
  194.   
  195. function randomcode() {  
  196.     $chars = "abcdefghijkmnopqrstuvwxyz023456789";  
  197.     srand((double)microtime() * 1000000);  
  198.     $i = 0;  
  199.     $pass = '';  
  200.   
  201.     while ($i <= 15) {  
  202.         $num = rand() % 33;  
  203.         $tmp = substr($chars,$num,1);  
  204.         $pass = $pass.$tmp;  
  205.         $i++;  
  206.     }  
  207.   
  208.     return $pass;  
  209. }  
  210.   
  211.   
  212. }  
  213.   
  214.   
  215. ?>  
 
1

random_code

ironwill · 2010. Okt. 4. (H), 11.45
Ez a sor adja a "randomizált" nevet:
  1. $filename_random = $this->storage_folder.'/'.$filename_random_code.'.'.$file_extension;  
A "$filename_random_code" részt kell lecserélned arra, mit az új névnek szeretnél megadni.

UPDATE:
így nézne ki változatlan névvel:
  1. $filename_random = $this->storage_folder.'/'.$this->filename.'.'.$file_extension;  
2

Nem működik

Meli · 2010. Okt. 4. (H), 13.53
nem lesz feltöltve a file
3

persze..

ironwill · 2010. Okt. 4. (H), 14.53
Bocs.. akkor a kiterjesztés nem kell..
  1. $filename_random = $this->storage_folder.'/'.$this->filename;  
És ezt is át kellene írni:
  1. $this->filelink = $this->site_url.'/'.$filename_random_code.'.'.$file_extension;  
erre:
  1. $this->filelink = $this->site_url.'/'.$this->filename;  
Ilyenkor azért jobb, ha küldesz valami hibaüzenetet, mert több okból is lehet hibázhat..
(És a könnyebb átláthatóság miatt használd a "Válasz" linket, hogy a kapcsolódó üzenet váltások jól látszódjanak.)
4

Sikerült

Meli · 2010. Okt. 4. (H), 15.18
Proclub volt olyan kedves ellentétben sok emberrel, hogy nem sajnált még egy kontrol + v -t és rendesen vissza küldte nekem javítva a kódomat.

Köszönöm
5

Ácsi

janoszen · 2010. Okt. 4. (H), 16.47
Azért az igazsághoz hozzá tartozik, és nem fair, hogy elhallgattad, hogy megmondtam, hogy nem jó úton jársz, hogy nem vagy hajlandó a PHP-val foglalkozni csak azért, mert valakinek egyszerűbb megcsinálni, mint Neked megtanulni. Legközelebb nem fogok segíteni, hanem a mai beszélgetésünkre hivatkozva meg fogom mondani, hogy most márpedig tanuld meg, hogy kell.
6

Huhh...

TeeCee · 2010. Okt. 5. (K), 07.31
... már épp kezdtem aggódni, mi van Veled (én csak a másik témát olvastam, ahol is megmondtam mit cseréljen mire, de nem ment...) :D

Hmmm. Itt volt még egy hozzászólása Meli-nek az ajánlott 12-es pontra vonatkozóan, azzal vajon mi lett?... http://weblabor.hu/forumok/temak/106526
7

.

Meli · 2010. Okt. 5. (K), 10.37
Mivel megoldódott a probléma, azt a hozzászólásom szerkesztettem,
de nagyon jó ha elolvastad, mert neked írtam TeeCee...
8

Ha nekem...

TeeCee · 2010. Okt. 5. (K), 13.46
...írtad, akkor privát, tessék magánban küldeni.

Részemről nincs harag, csak egyszerűen nem dolgoztam helyetted és ezt - úgy érzem - zokon vetted. Pont azért linkeltem be a "Hogyan kérdezz" cikket, mert rendszeresen jönnek akik kész kódot/megoldást szeretnének kapni = másokat szeretnének dolgoztatni.

Mindenesetre befejeztem az OFF-olást, ha továbbiakban erről szeretnél értekezni, azt privát elérhetőségeimen tedd.

Üdv:
TeeCee :o)