Autor Zpráva
3EBUK
Profil
Zdravím,
potřebuji, aby se z mého webu daly stahovat obrázky. Po stažení však soubor nelze otevřít a má o 1 kB víc. Windows mi píše, že je soubor pravděpodobně poškozen nebo příliš velký. Tady je kód na stahování:
header("Content-Description: File Transfer"); 
header("Content-Type: application/force-download"); 
header("Content-Disposition: attachment; filename=\"$soubor\""); 

readfile ($soubor); 
nevimco
Profil *
A jak získáváte proměnnou $soubor ?
3EBUK
Profil
$soubor beru z databáze.
  
$vysledek = mysql_query("SELECT * FROM soubory WHERE idsouboru = $idsouboru")or die(mysql_error());
 $obsah = mysql_fetch_array($vysledek);
 $soubor = $obsah['jmeno'];



Ještě přikládám náhled vlastností obou souboru, pokud to nějak pomůže.
http://clip2net.com/clip/m0/1346402193-clip-106kb.jpg
PPs
Profil *
1) Skontroluj kodovanie scriptu, pripojenia MySQL, vystupu MySQL, ulozenia MySQL ci su zhodne
2) Skus dosadit do header aj typ suboru a otestovat ci sa obrazok otvori spravne (teda bez hlavicky pre stahovanie)
3) Odstran prazdne znaky v scripte
4) Porovnaj velkost suboru ulozeneho v DB, ci je 513kB ako ma byt. Ak ano problem je na vystupe, ak ma 514kB, problem je pri ukladani
5) Spravnost scriptu otestujes tak, ze nacitas existujuci subor ako file (nie z DB). Ak otvori spravne problem je v DB ulozeni(volani), ak nie hladaj chybu v scripte.
3EBUK
Profil
Soubory mám uložené ve složce na serveru a tam normálně fungují, takže je problém při stahování. Pokud stáhnu soubory pdf, tak se zobrazí bez problému. Když stáhnu docx, word mi napíše, http://clip2net.com/clip/m0/1346408076-clip-23kb.jpg. Po obnovení je soubor pořádku. Asi se vrátim k header("location:$soubor); a obrázky se holt budou zobrazovat v prohlížeči. :(
Alphard
Profil
3EBUK:
Otevřete si oba soubory (originál i kopii) třeba v hexa a porovnejte především začátky, jestli se tam nedostal nějaký obsah navíc.
3EBUK
Profil
Už funguje, diky všem za pomoc. Měl jsem v souboru uložen i soubor hlavicka.html. To byl ten 1kB plus jsem tam měl prázdné znaky jako psal PPs v bodě 3).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: