![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 22.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam problem z uploadem oto link do niego
http://www.upload-triosat.pl/ problem tkwi w tym że jeżeli ktoś wżuci plik z nazwą np: "D+ _OK_KEY.zip" to w Panelu administratora nie mogę usunąc tego pliku ani zeedytować jego nazwy gdy chcę go usunąc wyskakuje mi nastepujący błąd: Kod Error: w bazie nie ma takiego pliku. (data/D _OK_KEY.zip) [b]Warning[/b]: Cannot modify header information - headers already sent by (output started at /home/uploadts/ftp/dots/index.php:111) in [b]/home/uploadts/ftp/dots/index.php[/b] on line [b]215 gdy wchodzę w edycję wyskakuje: nazwa pliku: D _OK_KEY.zip Kod [/b][b]Warning[/b]: file_get_contents(opisy/D _OK_KEY.zip.opis) [[url="http://uploadts.nazwa.pl/dots/function.file-get-contents"]function.file-get-contents[/url]]: failed to open stream: No such file or directory in [b]/home/uploadts/ftp/dots/index.php[/b] on line [b]324 po zmianie nazwy na :[/b]dsds.zip i zatwierdzeniu wyskakuje Kod [/b][b]Warning[/b]: rename(data/D _OK_KEY.zip,data/dsds.zip) [[url="http://uploadts.nazwa.pl/dots/function.rename"]function.rename[/url]]: No such file or directory in [b]/home/uploadts/ftp/dots/index.php[/b] on line [b]336[/b] [b]Warning[/b]: Cannot modify header information - headers already sent by (output started at /home/uploadts/ftp/dots/index.php:336) in [b]/home/uploadts/ftp/dots/index.php[/b] on line [b]215 z góry dziękuje za odpowiedz i pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 15 Dołączył: 16.02.2008 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
Może przy uploadzie pliku zmieniaj nazwę pliku na taką bez tego plusa.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 22.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
no oczywiscie ze ja nie wzucam plików z + ale wzucać mogą wszyscy ludzie pozdrawiam.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 7 Dołączył: 2.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
zablokuj mozliwosc uploadowaniu plikow z "+" w nazwie...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 22.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
mógłbys podpowiedziać jak?? jestem w trakcie czytania kursu php.... z góry dziekuje
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 10 Dołączył: 23.08.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 22.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Po prostu, przy uploadowaniu przez system nadawaj własne nazewnictwo plików np:
Kod 1 2 3 <?php $nazwa_pliku = md5($nazwa_oryginalna_pliku . time()); // Na pewno się nie powtórzy ?> mógłbys napisać gdzie to wkleić i czy mam cos edytować z góry dzieki za odpowiedź |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 15 Dołączył: 16.02.2008 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
O to mi chodziło... myślałem, że to będzie bardziej oczywiste. Wklej swój fragment kodu, odpowiedzialny za odbieranie plików, to Ci poprawimy.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 22.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
nie jestem pewny czy to jest to.
Kod //progressbar upload
if ($config['upload_progressbar']){ if (isset($_GET['sid'])) { $sid = $_GET['sid']; $tmp_dir = $config['upload_tmpdir']; $sid = ereg_replace("[^a-zA-Z0-9]","",$sid);//clean sid $file = $tmp_dir.'/'.$sid.'_qstring'; if(!file_exists($file)) { $errormsg = $lang['upload_error_sid']; } else { $qstr = join("",file($file)); //parse_str($qstr); parse_str($qstr, $_POST); //cleaning shit $exts = array("_flength","_postdata","_err","_signal","_qstring"); foreach($exts as $ext) { if(file_exists("$tmp_dir/$sid$ext")) { @unlink("$tmp_dir/$sid$ext"); } } //setting vars like without progressbar $_FILES['file']['name']=basename($_POST['file']['name']['0']); $_FILES['file']['size']=$_POST['file']['size']['0']; $_FILES['file']['tmp_name']=$_POST['file']['tmp_name']['0']; } } else if (isset($_POST['errormsg'])) { $errormsg = urldecode($_POST['errormsg']); if ($errormsg =="The maximum upload size has been exceeded") $errormsg = $lang['upload_error_sizelimit'].' ('.getfilesize($max_filesize).').'; } } //uploading if (isset($_FILES['file'])) { if ($config['protect_upload']) authorize(); uploadfile($_FILES['file'], $_SERVER["REMOTE_ADDR"]); } if (isset($zbanujxD)) { authorize(); $uah = fopen('zabanowani.txt', 'a+'); fwrite($uah, $zbanujxD.' '); fclose($uah); kierowca(); } function kierowca(){ header('Location:'.rooturl()); return; } function uploadfile($file, $ipek) { global $config, $lang, $max_filesize, $errormsg,$dir; if ($file['error']!=0) { $errormsg = $lang['upload_error'][$file['error']]; return; } //determine filename $filename=$file['name']; if (isset($_POST['filename']) && $_POST['filename']!="") $filename=$_POST['filename']; $filename=basename($filename); $filename=explode(".",basename($filename)); $ext = $filename[count($filename)-1]; unset($filename[count($filename)-1]); $filename=join('_',$filename).'.'.$ext; if (!in_array(strtolower(extname($filename)), $config['allowed_ext'])) { $errormsg = $lang['upload_badext']; return; } $filesize=$file['size']; if ($filesize > $max_filesize) { @unlink($file['tmp_name']); $errormsg = $lang['upload_error_sizelimit'].' ('.getfilesize($max_filesize).').'; return; } $filedest = $config['storage_path'].'/'.$filename; if (file_exists($filedest) && !$config['allow_overwrite']) { @unlink($file['tmp_name']); $errormsg = "$filename ".$lang['upload_error_fileexist']; return; } $plikx = fopen(("opisy/".$filename.".opis"), w); fwrite($plikx, $_POST['podpis']); fclose($plikx); $pliky = fopen(("opisy/".$filename.".pobran"), w); fwrite($pliky, "0"); fclose($pliky); $plikz = fopen(("opisy/".$filename.".ip"), w); fwrite($plikz, $ipek); fclose($plikz); $filesource=$file['tmp_name']; if (!file_exists($filesource)) { $errormsg = "$filesource do no exist!"; return; } else if (!move_uploaded_file($filesource,$filedest)) { if (!rename($filesource,$filedest)) { $errormsg = $lang['upload_error_nocopy']; return; } } if ($errormsg=="") { chmod ($filedest, 0755); if ($config['log_upload']) logadm($lang['UPLOAD'].' '.$filedest); $loc = rooturl(); if (sizeof($dir)>0) $loc .= join("/",$dir)."/"; Header("Location: ".$loc); exit; } Ten post edytował Tabus 24.03.2008, 14:03:14 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 7 Dołączył: 2.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Pomysł vtunera jest prawie dobry - pod warunkiem, że rozszerzenie pliku jest zawsze takie samo.
A tu całe rozwiązanie z założeniem, że uploudujesz tylko np .jpg: Kod //determine filename $filename= md5($file['name'].time()); $filename .= ".jpg"; if (isset($_POST['filename']) && $_POST['filename']!="") { $filename= md5($_POST['filename'].time()); $filename .= ".jpg"; } $filename=basename($filename); $filename=explode(".",basename($filename)); $ext = $filename[count($filename)-1]; unset($filename[count($filename)-1]); $filename=join('_',$filename).'.'.$ext; ale łatwiej i znacznie lepiej zrobić to preg_matchem, tutaj opis funkcji: (sam nie korzystalem jeszcze, dlatego mogą być błędy) http://pl.php.net/preg_match to będzie coś takiego: Kod //determine filename if(!(preg_match("/^[a-zA-Z0-9.\\-_]/", $file['name'], $filename))) { echo "plik ma nieprawidłową nazwę!"; die; } if (isset($_POST['filename']) && $_POST['filename']!="") { if(!(preg_match("/^[a-zA-Z0-9.\\-_]/", $_POST['filename'], $filename))) { echo "plik ma nieprawidłową nazwę!"; die; } } $filename=basename($filename); $filename=explode(".",basename($filename)); $ext = $filename[count($filename)-1]; unset($filename[count($filename)-1]); $filename=join('_',$filename).'.'.$ext; tylko jezeli plik bedzie mial zła nazwe, to caly skrypt sie zatrzyma, nie mam teraz czasu napisac tego inaczej, ale mozesz to zrobic sam, bo to nic trudnego (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 22.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
na uploadzie wzucamy pliki .zip i .rar da sie dla tych 2 rozszezen cos zrobic??
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 7 Dołączył: 2.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Kod $rozszerzenie = substr($file['name'], -4,4); $filename = md5($file['name'].time()); $filename .= $rozszerzenie; i analoogicznie w drugim miejscu, w takim wypadku rozszerzenie moze byc dowolne pod warunkiem, ze jest 3 literowe. Ten post edytował ebnott 24.03.2008, 20:16:44 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 22.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
zrobiłem tak jak napisałes działa ale po wzuceniu wyskakuje plik o nazwie
68901491c3a8f91fe20a52058128fe19.rar badź 68901491c3a8f91fe20a52058128fe19.zip wzucałem plik +.zip +.rar +++RAR.rar +++ZIP.zip i cały czas wyskuje ta nazwa 68901491c3a8f91fe20a52058128fe19.rar/.zip dało by się zeby wyskakiwało zamiast + poprostu puste pole tak jakby spacja? |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 7 Dołączył: 2.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
68901491c3a8f91fe20a52058128fe19.zip
bo tak ma wyskakiwac, dzieki temu nazwy sie nie powtorza. co by bylo gdyby ktos zaladowal dwa pliki o takiej samej nazwie? jezeli taka nazwa Ci przeszkadza to mozna zrobic tak: usuwamy z nazwy "+" i dodajemy zakodowana MD5 nazwe pliku i aktualny czas (zeby sie nie powtorzyl kod), przyklad: plik+12.zip na plik_12_68901491c3a8f91fe20a52058128fe19.zip zamieniamy "+" na "_" w ten sposob: $filename= str_replace("+", "_", $filename); |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 22.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
zmieniłem ale po wzuceniu pliku +++ ZIP.zip wyskakuje normalnie plik i jest problem z usunieciem go moze cos zle wkleiłem podam ponizej kod php jakbyś mógł go zeedytować to byłbym wdzieczny (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 7 Dołączył: 2.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
w kodzie, ktory wkleiles nie ma ani jednej zmiany, nawet na niego nie spojrzales?
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 22.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
wkleiłem z normalnego bo musialem cos zle robic;/
skrypt który zeedytowałem tak:
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 10 Dołączył: 23.08.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Pomysł vtunera jest prawie dobry - pod warunkiem, że rozszerzenie pliku jest zawsze takie samo. Niekonieczenie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pobierasz rozszerzenie wgrywanego np do zmiennej $ext, a następnie tworzysz nazwę np. md5($stara_nazwa.time()).'.'.$ext I plik ma takie samo rozszerzenie co oryginalne. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 7 Dołączył: 2.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
tego nie usuwasz:
if (isset($_POST['filename']) && $_POST['filename']!="") $filename=$_POST['filename']; tylko zamieniesz na: Kod if (isset($_POST['filename']) && $_POST['filename']!="") { $rozszerzenie = substr($_POST['filename'], -4,4); $filename = md5($_POST['filename'].time()); $filename .= $rozszerzenie; } a jak chcesz, zeby poczatek nazwy byl nazwa pliku, to tak: całość kodu którą wklejasz za: //determine filename a przed: $filename=basename($filename); Kod $nazwa = $file['name']; $nazwa= str_replace("+", "_", $nazwa); $rozszerzenie = substr($file['name'], -4,4); $nazwa2 = md5($file['name'].time()); $filename = $nazwa."_".$nazwa2.$rozszerzenie; if (isset($_POST['filename']) && $_POST['filename']!="") { $nazwa = $_POST['filename']; $nazwa= str_replace("+", "_", $nazwa); $rozszerzenie = substr($_POST['filename'], -4,4); $nazwa2 = md5($_POST['filename'].time()); $filename = $nazwa."_".$nazwa2.$rozszerzenie; } chyba wszystko o co Ci chodziło Niekonieczenie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pobierasz rozszerzenie wgrywanego np do zmiennej $ext, a następnie tworzysz nazwę np. md5($stara_nazwa.time()).'.'.$ext I plik ma takie samo rozszerzenie co oryginalne. napisałem już o tym: Kod $rozszerzenie = substr($file['name'], -4,4);
$filename = md5($file['name'].time()); $filename .= $rozszerzenie; |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 22.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
zmienilem tak jak napisałes lecz teraz nie działa w ogóle upload podaje poniżej kod moze cos spieprzyłem znowu ?(IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 00:59 |