Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie zamieszcza pliku na serwerze...
Forum PHP.pl > Forum > Gotowe rozwiązania
Piotr Gorski
Witam
Przy pomocy formularza zamieszczam plik:
Kod
<form  enctype="multipart/form-data" name="form" method="post" action="wpis.php">

        <input type="hidden" name="MAX_FILE_SIZE" value="40000000">

        <select name="dzial" >

                <option value="Strona główna">Strona główna</option>

                <option value="Komitet Sterujący">Komitet Sterujący</option>

                <option value="Rada Użytkowników">Rada Użytkowników</option>

              </select></td>

          <input name="tytul" type="text" id="tytul" size="30">

                <input name="skrot" type="text" id="skrot" size="30">

               <textarea name="pelna" cols="30" rows="8" id="pelna"></textarea>

                <input name="zalacznik"  type="file" size="20">

             <input name="autor" type="text" id="autor" size="20">

<input type="submit" name="Submit" value="Wprowadź">

              </form>

następnie wykonuje nastepujacy skrypt
[php:1:f07466248d]<?php
$dzial = $_POST['dzial'];
$tytul = $_POST['tytul'];
$skrot = $_POST['skrot'];
$pelna = $_POST['pelna'];
$autor = $_POST['autor'];
$zalacznik = $_FILES['zalacznik'];

if ($dzial != "" && $tytul != "" && $skrot!= "" && $autor != ""){
$polaczenie = mysql_connect ("sql.konta.pl", "informer", "******") or die ("Nie można się połączyć z MySQL");
$baza = mysql_select_db ("informer") or die ("Nie można się połączyć z bazą informer");

echo "Plik: $zalacznik, Nazwa: $zalacznik_name, Rozmiar: $zalacznik_size, Typ: $zalacznik_typ.";
if (is_uploaded_file($zalacznik)){
$nazwa = "pliki$zalacznik_name";
move_uploaded_file($zalacznik, $nazwa);
}

switch ($dzial){


case "Strona główna":
$zapytanie = "INSERT INTO `syriusz strona glowna` ( `nr` , `data` , `temat` , `skrot` , `tresc` , `autor` , `plik`)
VALUES ('', now(), '$tytul', '$skrot', '$pelna', '$autor', '$zalacznik_name');";
break;
case "Komitet Sterujący":
$zapytanie = "INSERT INTO `syriusz komitet sterujacy`( `nr` , `data` , `temat` , `skrot` , `tresc` , `autor` , `plik`)
VALUES ('', now(), '$tytul', '$skrot', '$pelna', '$autor', '$zalacznik_name');";
break;
case "Rada Użytkowników":
$zapytanie = "INSERT INTO `syriusz rada uzytkownikow` ( `nr` , `data` , `temat` , `skrot` , `tresc` , `autor` , `plik`)
VALUES ('', now(), '$tytul', '$skrot', '$pelna', '$autor', '$zalacznik_name');";
break;
default :
break;
}

$wykonanie = mysql_query ($zapytanie, $polaczenie) or die ("Nie mozna wykonać zapytania do bazy informer");

echo "Wiadomość zamieszczono<br>";

}
?>[/php:1:f07466248d]
Wszystko zostaje zamieszczone w bazie, łącznie z nazwą pliku, ale sam plik nie zapisuje sie na serwerze. Gdzie tkwi błąd?
kicaj
Mysle ze moze byc problem w:[php:1:99f6bf482c]<?php
$zalacznik = $_FILES['zalacznik']['name'];
?>[/php:1:99f6bf482c]
lub w funkcji kopiujacej
move_uploaded_file(); zamien na copy();
innego bledu nie widze...
Piotr Gorski
Niestety nie działa... Plik rozpoznaje poprawnie, bo gdy wypisuje:
[php:1:0fd61e8601]<?php echo "Plik: $zalacznik, Nazwa: $zalacznik_name, Rozmiar: $zalacznik_size";
?>[/php:1:0fd61e8601]
To wypisuje na stronie poprawne dane pliku...
Katalog ma atrybut 777, w którym mają być umieszczone pliki..
Dlaczego więc się nie umieszczają?!
Pomocy...
Piotr Gorski
No i działa w końcu...
Błąd był następujący:
było:
[php:1:d362b85a09]<?php
"pliki$zalacznik_name";
?>[/php:1:d362b85a09]
miast
[php:1:d362b85a09]<?php
"pliki/".$zalacznik_name";
?>[/php:1:d362b85a09]
testowałem zarówno z copy jak i move_uploaded_file dziala w obu przypadkach...
I ostatnia sprawa dla tych, ktorzy beda to czytac:
[php:1:d362b85a09]<?php
$z_n = $_FILES['zalacznik']['name'];
$z_temp = $_FILES['zalacznik']['tmp_name'];

if (is_uploaded_file($z_temp)) {
$nazwa = "pliki/".$z_n;
copy($z_temp, $nazwa);
}
?>[/php:1:d362b85a09]
(oczywiscie chmod musi byc 777 smile.gif dla katalogu z plikami)
Pozdrawiam
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.