Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z nazwaniem przesłanego pliku
Forum PHP.pl > Forum > PHP
blackneron
Mam problem ze zdefiniowaniem nazwy pobranego pliku według określonego zapytania sql'owego.

  1. <form enctype="multipart/form-data" action="wyslij_obrazek.php" method="POST">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="5000000" />
  3. <input name="plik" type="file" />
  4. <input type="submit" value="Wyslij plik" />
  5. </form>


  1. <?php
  2. $plik_tmp = $_FILES['plik']['tmp_name']; // $row[pole1] - tak ma się nazywać plik ...
  3. $plik_nazwa = $_FILES['plik']['name'];
  4. $plik_rozmiar = $_FILES['plik']['size'];
  5.  
  6. if(is_uploaded_file($plik_tmp)) {
  7.  move_uploaded_file($plik_tmp, "filmy_pic/$plik_nazwa");
  8. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  9. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  10.  
  11.  
  12. $abc=$_POST['abc'];
  13.  
  14. $sql="select pole1 from tab1 where abc='$abc'";
  15. $query=mysql_query($sql);
  16. $row=mysql_fetch_array($query);
  17. ?>
cadavre
Plik ma się nazywać $row[pole1] po zapisaniu na HDD serwera? No to w move_uploaded_file jako drugi parametr wpisz '$row[pole1]'. tongue.gif
Czyli:
  1. <?php
  2. move_uploaded_file($plik_tmp, "filmy_pic/$row[pole1]");
  3. ?>
questionmark.gif Totalnie zamieszałeś - nie rozumiem nic.

Pewnie chodzi Ci o to, że nazwa pliku ma być pobrana z bazy. Zatem:
  1. <?php
  2.  
  3. $abc=$_POST['abc'];
  4.  
  5. $sql="select pole1 from tab1 where abc='$abc'";
  6. $query=mysql_query($sql);
  7. $row=mysql_fetch_array($query);
  8.  
  9. $plik_tmp = $_FILES['plik']['tmp_name']; // $row[pole1] - tak ma się nazywać plik ...
  10. $plik_nazwa = $row;
  11. $plik_rozmiar = $_FILES['plik']['size'];
  12.  
  13. if(is_uploaded_file($plik_tmp)) {
  14.  move_uploaded_file($plik_tmp, "filmy_pic/$plik_nazwa");
  15. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  16. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  17.  
  18. ?>
blackneron
move_uploaded_file($plik_tmp, "filmy_pic/$plik_nazwa");
jak i:
move_uploaded_file($plik_tmp, "filmy_pic/$row[pole1]");

nie działają.

Takie błędy mi wyskakują:
move_uploaded_file(filmy_pic/): failed to open stream: Permission denied in c:\....
move_uploaded_file(): Unable to move.
sebik
Witam,
sprawdz czy masz uprawnienia zapisu w docelowym katalogu, poza tym nie bardzo wiem jak ma byc nazwa pliku, jesli jest ona w tablicy asocjacyjnej $row to powinno być $row['pole1'] a jesli to tablica indeksowana to $row[$pole1]
pozdrawiam
blackneron
co to znaczy - czy mam uprawnienia do tego folderu ? Jestem jako root więc chyba mam wszelkie prawa. A co do nazwy pliku:
np. filmy_pic/$plik_nazwa.jpg.
eS...
move_uploaded_file(filmy_pic/): failed to open stream: Permission denied in c:\
Przeciesz pisze wyraźnie że nie masz uprawnień "Premission denied"
sf
Cytat(blackneron @ 11.01.2007, 01:17:24 ) *
Jestem jako root więc chyba mam wszelkie prawa.


Ważne jest to na jakim użytkowniku działa apache, a sam możesz być nawet miki mouse.
blackneron
Cytat(sf @ 11.01.2007, 08:29:18 ) *
Ważne jest to na jakim użytkowniku działa apache, a sam możesz być nawet miki mouse.


dobra dobra :roll2: Sprawe rozwiązała funkcja mysql_insert_id().
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.