Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z nazwaniem przesłanego pliku, nazwa ma być zgodna z zapytaniem sql...
blackneron
post 9.01.2007, 22:07:45
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 5.01.2007
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
cadavre
post 9.01.2007, 22:55:19
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


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. ?>


Ten post edytował cadavre 9.01.2007, 23:00:40


--------------------
Silesian PHP User Group - www.spug.pl
Symfony2, OAuth2, budowanie API - masz pytania? Pisz!
Go to the top of the page
+Quote Post
blackneron
post 10.01.2007, 00:04:13
Post #3





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 5.01.2007
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
sebik
post 10.01.2007, 17:03:15
Post #4





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 4.01.2007

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


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
Go to the top of the page
+Quote Post
blackneron
post 11.01.2007, 01:17:24
Post #5





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 5.01.2007
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
eS...
post 11.01.2007, 02:00:35
Post #6





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

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


move_uploaded_file(filmy_pic/): failed to open stream: Permission denied in c:\
Przeciesz pisze wyraźnie że nie masz uprawnień "Premission denied"


--------------------
Go to the top of the page
+Quote Post
sf
post 11.01.2007, 08:29:18
Post #7





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


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.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
blackneron
post 18.01.2007, 23:39:40
Post #8





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 5.01.2007
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


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().
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: 19.07.2025 - 04:20