Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 2.959 pregleda

Najnovija ↓

PHP mi detektuje PDF kao binary... 24.01.2012. u 19:42 · pre 180 meseci #1
Pokušavam da uradim upload na server, ali naravno sa proverom šta se upload-uje i hoću da namestim da su dozvoljeni formati doc, docx, xls, xlsx kao i pdf.
Kod PDF-a imam problem što kada radim proveru on se predstavlja kao "application/binary" a ne kao "application/pdf"...
E sad, kako rešiti problem, a ne narušiti bezbednost servera?
Re: PHP mi detektuje PDF kao binary... 24.01.2012. u 21:47 · pre 180 meseci #2
A na osnovu čega si zaključio da je taj neki PDF fajl "application/binary"? Ono "type" polje koje ti stigne u $_FILES nizu nikako ne treba uzimati kao nešto što je relevantno (čak naprotiv iz bezbednosnih razloga), već je najsigurnije do tipa fajla doći uz pomoć Fileinfo ekstenzije. A ako to nije moguće, iz razloga što npr. nemaš tu ekstenziju na serveru, onda bar mime_content_type dolazi u obzir, mada ćeš videti da u manual-u piše da je ona deprecated i da se kao alternativa preporučuje upravo Fileinfo ekstenzija.
Re: PHP mi detektuje PDF kao binary... 25.01.2012. u 02:09 · pre 180 meseci #3
Pokušavam da namestim fileinfo, ali mi ne ide...
Code:
$finfo = finfo_open(FILEINFO_MIME_TYPE);
    echo finfo_file($finfo, $fajl['tmp_name']);
    finfo_close($finfo);
sada mi radi PDF, DOC i XLS, ali mi ne rade novi Office dokumenti (XLSX i DOCX) za koje mi vraća application/zip.
Inače verzija php-a na serveru je 5.3.2 i fileinfo ekstenzije 1.0.5-dev.

Za nove Office dokumente trebalo bi da vrati:
.docx -=:> "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
.xlsx -=:> "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"

što npr. radi u slučaju $fajl['type']...
Re: PHP mi detektuje PDF kao binary... 25.01.2012. u 18:42 · pre 180 meseci #4
A na kom OS-u to isprobavaš? Šta imaš u $_ENV['MAGIC']?

Da bi fileinfo radio kako treba, taj magic db fajl mora biti postavljen, jer u stvari u njemu je suština. Ako putanju do tog fajla ne proslediš ručno, kao drugi parametar finfo_open, ta funkcija će pokušati sama da ga pronađe, mada pitanje je da li će ga zaista i naći. Uključi prikazivanje warning-a, kako bi eventualno video da li PHP možda izbacuje neko upozorenje da nije uspeo da load-uje magic fajl, pri pozivu finfo_open f-je.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme