Upload souboru pres XMLHttpRequest – MIME type
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- zarubik
- Člen | 31
Je to možná víc otázka na PHP, tak se předem omlouvám.
Posílám pres javascript soubor
<script type="text/javascript">
/* ... */
xhr.open("POST", queryString, true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.setRequestHeader("X-File-Name", encodeURIComponent(name));
xhr.setRequestHeader("X-File-Type", file.type);
xhr.setRequestHeader("Content-Type", "application/octet-stream");
xhr.send(file);
/* .. */
</script>
A ted mi jde o zjisteni na strane frameworku o jaky mime typ jde.
Jestli se mohu spolehnout na typ, ktery posilam v hlavicce nebo ho overovat
i pomoci PHP. Funguje mi jedine ulozit soubor do tempu, overit typ pak si ho
presnout jinam (coz si myslim ze je zbytecna prace navic).
Cast spracovani kodu:
$dest = '..'; // umisteni souboru
$input = fopen("php://input", "r");
$temp = tmpfile();
$realSize = stream_copy_to_stream($input, $temp);
fclose($input);
if ($realSize != $this->getSize()){
throw new InvalidStateException("Different size.");
}
$target = fopen($dest, "w");
fseek($temp, 0, SEEK_SET);
stream_copy_to_stream($temp, $target);
fclose($target);
Ten typ souboru, bych potreboval vedet jeste pred nahrani souboru do pozadovaneho umisteni, mam primo tridu XMLHttpUploadedFile zdedenou od HttpUploadedFile.
Nebo jestli overovat jenom pomoci koncovky? Je nejaka funkce jenom na prevod koncovky, nebo bych si musel dat do pole mime typ a k tomu priponu?
Diky za napady
Editoval zarubik (4. 10. 2010 9:20)