Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] nazwa pliku po wysłaniu, nieprawidłowa nazwa pliku po wysłaniu na serwer
sargosa
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Pyton_000
post
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...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 17:44