|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 381
|
[PHP] Warning: filesize(): Stat failed for....
Ciao,
ho messo un file in un DB MySql e quando faccio la query per scaricarlo mi becco un errore nella dimensione del file: Warning: filesize(): Stat failed for.... Il file è stato messo come binary medium-blob e la dimensione nel campo "size" del database è corretta. Quando cerco di estrarlo con: $sql = "SELECT file, nomefile FROM files WHERE (id='".$_POST[id]."')"; e faccio: $risultato = @mysql_query($sql,$connessione)or die("Errore".mysql_error()); $row = mysql_fetch_array($risultato); $data=$row['file']; $name=$row['nomefile']; echo filesize($data); trovo l'errore sopra citato. Grazie! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ciao Simo...
Probabilmente perchè filesize non prende i dati direttamente, ma solamente il nome del file... Per usare filesize dovrsti prima scrivere il file su disco... Ma $data è in pratica un vettore ? Altrimenti basta usare count($data)... |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 381
|
Ciao Ricca!
dunque, io ho uplodato dei files nel db: - file (medium blob, binary) - nomefile - size quando vado a prelevarli voglio che questi vengano scaricati (e non visualizzati, per esempio, se fossero pdf) Come posso inviarli al browser con i parametri che ti ho elencato? Ciao e grazie... |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Il fatto che vengano scaricati e non visualizzati (se è un pdf parte Acrobat nel browser) dipende solo dalle impostazioni locali del client...
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 381
|
ma che headers gli mando?
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Gli devi amndare sicuramente il content-type giusto...e poi ne avevo trovato un altro per impostare il nome del file (senza dover fare tutto quel gico con l'url-rewriting di cui si parlava l'altra volta)...
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 381
|
header("Content-Type: {$result['filetype']}");
header("Content-Disposition: attachment; filename={$result['filename']}"); header("Content-Length: {$result['filesize']}"); header("Content-Transfer-Encoding: binary"); io ho trovato questi... ma mi scarica sempre e solo 512... |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 381
|
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename={$name}"); header("Content-Length: {$size}"); header("Content-Transfer-Encoding: binary"); mi scarica sempre 46 byte e basta. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
L'header a cui mi riferivo era proprio questo...
header("Content-Disposition: attachment; filename={$result['filename']}"); Che c'è quea dentro ? $result['filetype'] |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 381
|
Ciao,
ho semi-risolto in questo modo: if(ereg("MSIE ([0-9].[0-9]{1,2})", $_SERVER["HTTP_USER_AGENT"])) { header("Content-Type: application/octetstream"); header("Content-Disposition: attachment; filename=$name"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Transfer-Encoding: binary"); header("Pragma: public"); } else{ header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=$name"); header("Expires: 0"); header("Content-Transfer-Encoding: binary"); header("Pragma: no-cache"); } echo $data; dico semi perchè mi funziona su tutto (IE, Mozzilla, Firefox...) ma NON mi va su un IE 5.... che ho qua in ufficio, su altri IE5 si ma su uno no.. mi vuole far scaricare il documento html (ossia la pagina che lo contiene) Quote:
$FILES[nomefile]["type"] poi semmai ti mando i link e provi a scaricare anche te, per ora sto facendo delle prove. Ciao! |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Hai rpovato così ?
<?php $filename = $_REQUEST["f"]; header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/pdf"); header( "Content-Disposition: attachment; filename=\"$filename\""); header( "Content-Description: File Transfert"); @readfile($filename); ?> Ovvimente io gli passo un PDF...te dovresti passare il mime-type che hai nel DB nel content-type... |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Nota la differenza sula passaggio del nome del file...
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 381
|
ma come posso risalire al tipo di un file? io non lo uplodo con la form e quindi non ho a disposizione la proprietà $FILE[nomefile]["type"].
Come faccio ad imporre che TUTTI i FILES VENGANO SCARICATI (e non aperti)? |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Nella directory di configurazione di Apache hai la lista dei mime-type con accanto l'estensione... Elimina dalla lista quelli che non hanno estensione...e consulta questa lista per determinare il mime-type del tuo file...
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 381
|
SOno in HOST!!!
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Scaricati Apache e mettiti quel file sull'host
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 381
|
Si, la conosco, ma ho letto che non sempre funziona...
ora intopo un popò e poi ti faccio sapere. Grazie ancora! |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Comunque visto che sei tu che rilasci il file fai rpima a fare un'associazione estensione <-> mime-type....
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 381
|
http://it2.php.net/manual/en/ref.mime-magic.php
per installare questa bisogna poter accedere o a httpd.conf o php.ini.... quindi non posso. Ho pensato di mettere il tipo mime in funzione dell'estenzione, da solo a mano tanto devo uplodare solo file con estenzioni classiche: pdf, zip,rar,txt.... Sai mica dove posso trovare il corrispondente tipo mime delle varie estenzioni? Cosa significa: Content-Type: application/octetstream Ciaooo! |
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Mi quoto...
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:15.



















