![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 3.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z nazwą pliku po wysłaniu na serwer.
Otóż na serwerze lokalnym (xampp) wszystko pracuje ok. Problem jest wtedy, gdy skrypt umieszczam na serwerze zewnętrznym (nazwa.pl) i tam pliki po wysłaniu z komputera na serwer przyjmują nieprawidłową nazwę tzn. kropka oddzielająca rozszerzenie i samo rozszerzenie są dodane do nazwy pliku a miejsce rozszerzenia jest puste. Powodem tego jest brak możliwości porania plików na kompa z bazy danych na serwerze zewnętrznym, ponieważ nie może znależć prawidłowej nazwy pliku czyli nazwa.roz Na lokanym serwerze jest dobrze a na zewnętrznym jest problem. Co jest problemem? Ustawienia serwera na www.nazwa.pl ? po lewej serwer lokalny po prawej zewnętrzny (IMG:http://www.mapadotacji.info/pliki.png) dołączam kod: plik dodaj.php $p_pojemnosc=$_FILES['plik']['size'];//pojemnosc pliku $p_typ=$_FILES['plik']['type']; // typ pliku $p_nazwa=$_FILES['plik']['name']; // nazwa pliku $p_smiec=$_FILES['plik']['tmp_name']; // chwilowa nazwa pliku //wycinamy rozszerzenie z pobieranego pliku $p_roz= array_pop(explode(".", $p_nazwa)); /* odbieramy dane z pola ukrytego i zaokrąglamy je do 3 miejsca po przecinku/dzielimy przez 1204*1024 by było w MB*/ $max_size=round(($_POST['max_file_size']/1048576),3)."MB"; //zaokrąglamy "round" do 2 miejsc po przecinku i przeliczamy rozmiar pliku na MB $poj_MB=round(($p_pojemnosc/1048576),2).'MB'; //kodujemy nasz plik metodą MD5 i dodajemy date i godzinę oraz rozszerzenie pliku $p_nazwa_zm=(md5($p_nazwa)).".".$p_roz; $folder="pliki/"; //---Kolorki HTML--- $k_cze="<font color=#ff0000>"; $f_koniec="</font>"; $k_nieb="<font color=#0000ff>"; if ($p_pojemnosc <= 0) { echo ("Plik jest pusty nie mogę go przesłać <b>".$k_cze.$p_nazwa." ".$poj_MB.$f_koniec."</b><br />"); echo "<a href=index.php>Wracaj ...</a>"; exit; } if ($poj_MB > $max_size) { echo("Plik jest za duży maksymalnie można wysłać <b>".$k_cze.$max_size.$f_koniec."</b>"." .Plik wysyłany ma rozmiar <b><i>".$k_nieb.$poj_MB.$f_koniec."</b></i><br />"); echo "<a href=index.php>Wracaj ..."; exit; } if (file_exists($folder.$p_nazwa_zm)) { echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$p_nazwa_zm."</b></i><br />"); echo "<a href=index.php>Wracaj ..."; exit; } else { if(!@move_uploaded_file($p_smiec, $folder.$p_nazwa_zm)) exit('Nie mozna zachowac pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać'); echo "Przeslanie udało się - <b>".$k_nieb.$p_nazwa."</b>"." ".$poj_MB."<br />" $path_file=$folder.$p_nazwa_zm; $conn = mysql_connect('localhost', 'user', 'password') or die('Error connecting to mysql'); mysql_select_db('nazwa_bazy'); $zapytanie=mysql_query("insert into nazwa_tabeli values(NULL,'$p_pojemnosc','$path_file','$p_typ')"); echo "<a href=index.php>Wracaj ..."; } tutaj kod formularza: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO8859-2"> <title>SendFileToServer-LinkToMySQL</title> </head> <body> <form action="dodaj.php" method="post" enctype="multipart/form-data" name="form1"> <p align="center">Wysyłanie plików na serwer. </p> <table width="422" border="1" align="center" bordercolor="#0000FF" bgcolor="#C0C0C0"> <tr> <th width="444" scope="row"><input name="plik" type="file" size="50"/> <input name="max_file_size" type="hidden" value="1048576" /></th> </tr> <tr> <th scope="row"><input value="Wyślij plik" type="submit" /> </th> </tr> </table> </form> </body> </html> Zaznaczam , że na serwerze lokalnym wszystko działa - problem jest na zewnętrznym. Na fotce widać różnice. Ten post edytował sargosa 22.01.2016, 20:08:27 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
A świstak siedzi i zawija je w te sreberka...
kod panie, kod... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 17:44 |