Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kopiowanie/upload plików
Forum PHP.pl > Forum > PHP
The bob
NApisałem taki skrypt (jeszcze nie jest dokończony) na upload plików w PHP, ale niedziała... niewiem dlaczego, nierobumiem tego... oto on:

Kod
<html>
<head>
  <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
</head>
<body>
<?
//settings
$name = "".$_POST['name'].".".$_POST['type']."";

//uploading
if (isset ($_POST['submit'])) {
    if (!copy($_POST['file'], $name)) {
        $message="Kopiowanie pliku nie powiodło się...<br>\n";
    } else {
        $message="Kopiowanie pliku powiodło się...<br>\n";
    }
}

//printing form
echo '
      <form action="upload.php?act=1&what=upload" method="POST" enctype="multipart/form-data">
      <input type="file" name="file" onFocus=\'this.style.background="#ffffaa";\' onBlur=\'this.style.background="#f9f9f9";\' style="background-color:#f9f9f9"><BR>
      <input type="text" value="Nazwa pliku" name="name" onFocus=\'this.value="";this.style.background="#ffffaa";\' onBlur=\'if(this.value=="")this.value="Nazwa pliku";this.style.background="#f9f9f9";\' style="background-color:#f9f9f9"><BR>
      <input type="submit" name=submit value="Wyślij" style="width:75; background-color:#f9f9f9"><input type="reset" value="Czyść" style="width:75; background-color:#f9f9f9">
      <BR><BR>
      <select name="type" style="background: #f9f9f9">
      <option value="">Select type of file</option>
      <option value="html">HTML file</option>
      <option value="txt">TXT document</option>
      <option value="exe">EXE file</option>
      <option value="'.$type2.'">Other (select what)</option>
      
      
      </select>
      </form>
';

echo '<BR><BR>';
echo $message;
echo 'nazwa nowego pliku to: '.$name;

?>
</body>
</html>


I ten skrypt zwraca tylko takie coś:

Cytat
Kopiowanie pliku nie powiodło się...
nazwa nowego pliku to: asd.txt


gdzie asd.txt zależy od nazwy i rozszerzenia jakie podam tongue.gif

pomógł by mi ktoś to zrobić takie żeby to działało?
Noddi
Spróbuj zrobić upload przez funkcje move_uploaded_file" title="Zobacz w manualu PHP" target="_manual i przejrzyj to: http://pl2.php.net/manual/pl/features.file-upload.php
neates
Witam,

Mam podobny problem, z tym że kod już miałem gotowy (ściągnięty z jakieś stronki). Problem polega na tym, że ten kod nie działa mi na wszystkich przeglądarkach. W zasadzie działa na starym Firefoxie, IE6 itp, natomiast firefox 2.0, IE7 powoduje wysłanie pliku na serwer, ale nie wykonuje mi się zapis do bazy ani przekopiowanie pliku do odpowiedniego katalogu. Na czym może polegać ten błąd? zaznaczę też, że na nowej operze pliki z tego kodu wysyłają i zapisują się na serwerze bez problemów.

Poniżej zamieszczam kod, który używam:

  1. <?php
  2. $max_rozmiar = 90000;
  3. $rozmiar = $max_rozmiar/1000;
  4. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  5. if ($_FILES['plik']['size'] > $max_rozmiar) {
  6. echo "Błąd! Zdjęcie ma za duży rozmiar! Maksymalnie może mieć ".$rozmiar."kb";
  7. } else {
  8. if (isset($_FILES['plik']['type'])) {
  9. }
  10. if ($_FILES['plik']['type']=="image/pjpeg"){
  11.  
  12. $rozsz = ".jpg";
  13. $file = $_FILES['plik']['name'];
  14. move_uploaded_file($_FILES['plik']['tmp_name'],'../graph/aktualnosci/'.$_FILES['plik']['name']);
  15. $size = filesize("../graph/aktualnosci/$file");
  16. $size = $size/'1000';
  17. $real_size = round($size,'2');
  18. $data = date('m.d.Y');
  19. $nazwa = "aktualnosci_id$_POST[id]";
  20. $new_name = "$nazwa$rozsz";
  21. rename("../graph/aktualnosci/$file","../graph/aktualnosci/$new_name");
  22.  
  23. $sql_upd = mysql_query("UPDATE bl8_news SET zdjecie='$new_name' WHERE id='$_POST[id]'");
  24.  
  25. echo "
  26. <p>Plik o nazwie $file ($real_size kb) został wysłany na serwer.</p>
  27. ";
  28. }
  29.  
  30. }
  31. } else {
  32.  
  33. echo 'Błąd przy przesyłaniu danych!';
  34. }
  35. ?>


Z góry dziękuję za pomoc!
The bob
Z move_uploaded_file też nie działa :/ efekt taki sam... prubowałem tez że zamiast $_POST dałęm $_FILE... to samo :/
mike
Cytat(The bob @ 20.05.2007, 14:22:32 ) *
próbowałem tez że zamiast $_POST dałęm $_FILE... to samo :/
Jeżeli ma Ci zadziałać to na pewno nie z $_POST a co do $_FILE to ... nie ma czegoś takiego.
Jest $_FILES.
The bob
eeh no wiem, pomyliło mi sie w pisowni ale tam właśnie dałem files... mógł by może ktoś ten kod sprawdzić u siebie na kompie? Bardzo proszę :/
szmerak
A w php.ini jaki masz maxymalny rozmiar pliku?
The bob
10 MB chyba, ale i tak ten plik waży 1 KB tongue.gif
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.