Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zmiana nazwy pliku przy dodawaniu go przez formularz na strone
rts
post 27.10.2006, 20:57:05
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 23.10.2006

Ostrzeżenie: (0%)
-----


Witam. Mam formularz przez który dodaje się zdjęcia na stronie ale jeśli dwa różne zdjęcia będą miały taką samą nazwę to będą się wyświetlały jako to samo zdjęcie.
Jak zrobić aby przy dodawaniu zdjęcia nazwa się zmieniała na losowy ciąg znaków?
Pozdrawiam
Go to the top of the page
+Quote Post
Cysiaczek
post 27.10.2006, 20:59:30
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




uniqid
Doklejasz np na końcu pliku i tyle smile.gif

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
rts
post 27.10.2006, 21:52:20
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 23.10.2006

Ostrzeżenie: (0%)
-----


Ale nie bardzo wiem gdzie mam to umieścić sad.gif

Kod mam taki:

  1. <?
  2. include("include/common.php");
  3.  
  4. if(!$loggedin){
  5. header("Location: login.php");
  6. }
  7. include("include/header.php");
  8. include("include/accmenu.php");
  9.  
  10. if($submit){
  11. if($_POST['delimg']){
  12. mysql_query("UPDATE portfolio SET imagefile='' WHERE id='$oid'");
  13. if(file_exists("./uploads/".$_POST['delimg']))@unlink("./uploads/".$_POST['delimg']);
  14. }
  15. if($_POST['delimg2']){
  16. mysql_query("UPDATE portfolio SET imagefile2='' WHERE id='$oid'");
  17. if(file_exists("./uploads/".$_POST['delimg2']))@unlink("./uploads/".$_POST['delimg2']);
  18. }
  19. if($_POST['delimg3']){
  20. mysql_query("UPDATE portfolio SET imagefile3='' WHERE id='$oid'");
  21. if(file_exists("./uploads/".$_POST['delimg3']))@unlink("./uploads/".$_POST['delimg3']);
  22. }
  23. if($_POST['delimg4']){
  24. mysql_query("UPDATE portfolio SET imagefile4='' WHERE id='$oid'");
  25. if(file_exists("./uploads/".$_POST['delimg4']))@unlink("./uploads/".$_POST['delimg4']);
  26. }
  27. if($oid){
  28. $sql = "UPDATE portfolio SET title='$ctitle',body='$cbody'";
  29. if( $_FILES['image']['name'] ){
  30. $sql .= ",imagefile='".$_FILES['image']['name']."'";
  31. }
  32. if( $_FILES['image2']['name'] ){
  33. $sql .= ",imagefile2='".$_FILES['image2']['name']."'";
  34. }
  35. if( $_FILES['image3']['name'] ){
  36. $sql .= ",imagefile3='".$_FILES['image3']['name']."'";
  37. }
  38. if( $_FILES['image3']['name'] ){
  39. $sql .= ",imagefile4='".$_FILES['image4']['name']."'";
  40. }
  41. $sql .= " WHERE id='$oid'";
  42. }else{
  43. $sql = "INSERT INTO portfolio SET title='$ctitle',body='$cbody',user='$myuid'";
  44. if( $_FILES['image']['name'] ){
  45. $sql .= ",imagefile='".$_FILES['image']['name']."'";
  46. }
  47. if( $_FILES['image2']['name'] ){
  48. $sql .= ",imagefile2='".$_FILES['image2']['name']."'";
  49. }
  50. if( $_FILES['image3']['name'] ){
  51. $sql .= ",imagefile3='".$_FILES['image3']['name']."'";
  52. }
  53. if( $_FILES['image3']['name'] ){
  54. $sql .= ",imagefile4='".$_FILES['image4']['name']."'";
  55. }
  56. }
  57. // echo $sql."<br>";
  58. mysql_query($sql) or die( mysql_error()."<br>$sql<bR>" );
  59. if(!$oid){
  60. $oid = mysql_insert_id();
  61. }
  62. if( $_FILES['image']['name'] ){
  63. if($_POST['oldimg'])@unlink("./uploads/".$_POST['oldimg']);
  64. $match=0;
  65. $sent=move_uploaded_file($_FILES['image']['tmp_name'], "./uploads/".$_FILES['image']['name']);
  66. if(!$sent){
  67. echo ("<script>window.alert('File upload has failed.');</script>");
  68. }else{
  69. echo ("<script>window.alert('File upload of file type $type was sucessfull');</script>");
  70. }
  71. }
  72. if( $_FILES['image2']['name'] ){
  73. if($_POST['oldimg2'])@unlink("./uploads/".$_POST['oldimg2']);
  74. $sent=move_uploaded_file($_FILES['image2']['tmp_name'], "./uploads/".$_FILES['image2']['name']);
  75. if(!$sent){
  76. echo ("<script>window.alert('File upload has failed.');</script>");
  77. }else{
  78. echo ("<script>window.alert('File upload of file type $type was sucessfull');</script>");
  79. }
  80. }
  81. if( $_FILES['image3']['name'] ){
  82. if($_POST['oldimg3'])@unlink("./uploads/".$_POST['oldimg3']);
  83. $sent=move_uploaded_file($_FILES['image3']['tmp_name'], "./uploads/".$_FILES['image3']['name']);
  84. if(!$sent){
  85. echo ("<script>window.alert('File upload has failed.');</script>");
  86. }else{
  87. echo ("<script>window.alert('File upload of file type $type was sucessfull');</script>");
  88. }
  89. }
  90. if( $_FILES['image4']['name'] ){
  91. if($_POST['oldimg4'])@unlink("./uploads/".$_POST['oldimg4']);
  92. $sent=move_uploaded_file($_FILES['image4']['tmp_name'], "./uploads/".$_FILES['image4']['name']);
  93. if(!$sent){
  94. echo ("<script>window.alert('File upload has failed.');</script>");
  95. }else{
  96. echo ("<script>window.alert('File upload of file type $type was sucessfull');</script>");
  97. }
  98. }
  99.  
  100. ?>
  101. <h3>Edycja Galerii</h3>
  102. <?=$table2?>
  103. <tr align=center>
  104. <td colspan=2>Dane zostały zapisane.</td>
  105. </tr>
  106. <?
  107. echo "</table>";
  108. }else{
  109. if($oid){
  110. $this->c=mysql_query("select * from portfolio where id='$oid'");
  111. $this->d=mysql_fetch_object($this->c);
  112. if(is_object($this->d)) {
  113. $cid = $this->d->id;
  114. $ctitle = $this->d->title;
  115. $cbody = $this->d->body;
  116. $imagefile = $this->d->imagefile;
  117. $imagefile2 = $this->d->imagefile2;
  118. $imagefile3 = $this->d->imagefile3;
  119. $imagefile4 = $this->d->imagefile4;
  120. }
  121. }
  122. ?>
  123. <h3>Edycja Galerii</h3>
  124. <form method=post ENCTYPE="multipart/form-data">
  125. <? if($oid)echo "<input type='hidden' name='oid' value='$oid'"; ?>
  126. <?=$table2?>
  127. <tr>
  128. <td colspan=2>Jednorazowo możesz dodać 4 zdjęcia do galerii, po zapisaniu możesz dodawać na
    stępne. Nie ma limitu wielkoście zdjęcia jednak nie może zajmować więcej niż 1MB.<br><br></td>
  129. </tr>
  130. <tr>
  131. <td>Tytuł:</td>
  132. <td><input type="text" name="ctitle" value="<?=$ctitle?>">
  133. <tr>
  134. <td>Opis Galerii:</td>
  135. <td>
  136. <textarea name=cbody cols=50 rows=10><?=$cbody?></textarea>
  137. </td>
  138. </tr>
  139. <tr>
  140. <td>Zdjęcie 1:</td>
  141. <td>
  142. <INPUT NAME="image" TYPE="file">
  143. <?
  144. if($oid && $imagefile){
  145. echo "&nbsp; 
  146. <input type=hidden name=oldimg value='$imagefile'> 
  147. <input type=checkbox class=checkbox name=delimg value='$imagefile'> 
  148. Usuń (<a href='$siteurl/uploads/$imagefile","' target=_blank>Zobacz zdjęcie</a>)";
  149. }
  150. ?>
  151. </td>
  152. </tr>
  153. <tr>
  154. <td>Zdjęcie 2:</td>
  155. <td>
  156. <INPUT NAME="image2" TYPE="file">
  157. <?
  158. if($oid && $imagefile2){
  159. echo "&nbsp; 
  160. <input type=hidden name=oldimg2 value='$imagefile2'> 
  161. <input type=checkbox class=checkbox name=delimg2 value='$imagefile2'> 
  162. Usuń (<a href='$siteurl/uploads/$imagefile2","' target=_blank>Zobacz zdjęcie</a>)";
  163. [...]


Gdzie i jak to poprawnie włożyć?
Go to the top of the page
+Quote Post
jarrod
post 27.10.2006, 22:17:03
Post #4





Grupa: Zarejestrowani
Postów: 312
Pomógł: 9
Dołączył: 14.10.2006
Skąd: warszawa

Ostrzeżenie: (0%)
-----


move_uploaded_file " title="Zobacz w manualu php" target="_manual
Go to the top of the page
+Quote Post
rts
post 4.11.2006, 15:45:18
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 23.10.2006

Ostrzeżenie: (0%)
-----


Dosałem na kończu pliku

  1. <?php
  2. // no prefix
  3. $token = md5(uniqid());
  4. ?>


ale to nic nie daje sad.gif
Na pewno coś zle robie..
Go to the top of the page
+Quote Post
jarrod
post 4.11.2006, 18:03:44
Post #6





Grupa: Zarejestrowani
Postów: 312
Pomógł: 9
Dołączył: 14.10.2006
Skąd: warszawa

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $token = md5(uniqid());
  3. move_uploaded_file($_FILES['image']['tmp_name'], './uploads/'.$token.'tutaj_rozszerzenie_pliku');
  4. ?>

i powinno zadziałać

Ten post edytował jarrod 4.11.2006, 18:04:26
Go to the top of the page
+Quote Post
rts
post 4.11.2006, 19:24:42
Post #7





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 23.10.2006

Ostrzeżenie: (0%)
-----


Dodałem
  1. <?php
  2. $token = md5(uniqid.time());
  3. move_uploaded_file($_FILES['image']['tmp_name'], './uploads/'.$token.'.jpg');
  4. ?>

i nazwa się zmienia ale na stronie można dodawać 4 zdjęcia jednocześnie i nazwa się zmienia tylko temu pierwszemu, pozostałe zachowują nazwę oryginalną...

I drugi problem jest taki, że na stronie gdzie wyświetlają sie miniaturki z linkiem do dużego zdjęcia adres (nazwa zdjęcia) jest ta stara a nie wygenerowana :/

Ten post edytował rts 4.11.2006, 20:04:21
Go to the top of the page
+Quote Post
jarrod
post 4.11.2006, 22:48:33
Post #8





Grupa: Zarejestrowani
Postów: 312
Pomógł: 9
Dołączył: 14.10.2006
Skąd: warszawa

Ostrzeżenie: (0%)
-----


w takim razie zmienna $_FILES['image']['tmp_name'] jest tablicą nazw tymczasowych plików.

Wówczas przenoszenie pliku umieszczasz w pętli:
  1. <?php
  2. foreach($_FILES['image']['tmp_name'] as $tmp)
  3. {
  4. $token = md5(uniqid.time());
  5.  move_uploaded_file($_FILES['image']['tmp_name'], './uploads/'.$token.'.jpg');
  6. }
  7. ?>


A jeślli chodzi o dodanie do bazy to zrób to w tej pętli podając aktualnie wygenerowany hash. Możesz też nazwy przechowywać w tablicy i później zbudować zapytania. To już zależy od ciebie.

Moim zdaniem najprościej będzie zbudować klasę do obsługi uploadu. Sam sobie kiedyś taką zrobiłem i okazało się że do tej pory używam jej przy różnych projektach. Nie bawię się później w obsługę plików tylko używam gotowych metod.
Go to the top of the page
+Quote Post
rts
post 5.11.2006, 11:50:59
Post #9





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 23.10.2006

Ostrzeżenie: (0%)
-----


Dodanie

  1. <?php
  2. foreach($_FILES['image']['tmp_name'] as $tmp);
  3. {
  4. $token = md5(uniqid.time());
  5.  move_uploaded_file($_FILES['image']['tmp_name'], './uploads/'.$token.'.jpg');
  6. }
  7. ?>


niestety nie pomogło, dalej tylko pierwszy plik zmienia nazwe a pozostałe zachowują oryginalną.

Jeszcze mam drugi problem, mam taki kod:

  1. <?
  2. include("include/common.php");
  3.  
  4. if(!$loggedin){
  5. header("Location: login.php");
  6. }
  7. include("include/header.php");
  8. include("include/accmenu.php");
  9. if($del){
  10. // delete;
  11. }
  12. ?>
  13. <h3>Edytuj Swoje Galerie.</h3>
  14. <?=$table2?>
  15. <tr>
  16. <td colspan=2>Edytuj Swoje Galerie.<br><br></td>
  17. </tr>
  18. <?
  19. $this->c=mysql_query("select * from portfolio where user='$myuid'");
  20. while( $this->d=mysql_fetch_object($this->c) ){
  21. ?>
  22. <tr>
  23. <td><?=$this->d->title?>
  24. <td>
  25. <a href="editimg2.php?oid=<?=$this->d->id?>">Edytuj</a>
  26. <a href="editimg.php?del=<?=$this->d->id?>">Usuń</a>
  27. </td>
  28. </tr>
  29. <?
  30. }
  31. ?>
  32. <tr>
  33. <td colspan=2>
  34. <a href="editimg2.php">Dodaj Nową Galerię</a>
  35. </td>
  36. </tr>
  37. </table>
  38. <? include("include/footer.php"); ?>


Po naciśnięciu na usuń galeria powinna się kasować ale nic się nie dzieje sad.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 15:12