file uploader doc(x) php

Pagina: 1
Acties:
  • 236 views

Acties:
  • 0 Henk 'm!

Anoniem: 351482

Topicstarter
hi
ik wil graag met een php formulier pdf , doc en docx bestanden up kunnen loaden. ook enkel die bestanden. zo'n script heb ik nu gemaakt. maar hoe check ik of een bestand dat een de file uploader zit een doc of docx is?
pdf is al gelukt:
if ($_FILES['xx']['type'] != "application/pdf" // werk
maar $_FILES['xx']['type'] != "application/msword" werkt niet. want daarmee kan ik niet doc(x) bestanden uploaden..

edit;
of weet iemand een manier waarmee ik een met de phpmailer class van worx gelijk een bestand kan meegeven als bijlage. zonder deze eerst te hoeven uploaden op de server? dat zou wel zo handig zijn..

<input type="file" name="pdfofdoc" />

[ Voor 23% gewijzigd door Anoniem: 351482 op 26-09-2010 23:58 ]


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 05-07 11:33
Waar jij naar zoekt heet een MIME type. Welke je nodig hebt voor je uploadscript kun je met google vinden :)

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 19:33
Het 'type' attribuut dat je uit de $_FILES array leest wordt gegeven door de browser van je bezoeker .Kwaadwillenden kunnen deze aanpassen, en dus is die niet 100% betrouwbaar. Je kunt hem wel gebruiken voor een initiële controle.
Bij Word-documenten zal deze iets als application/ms-word bevatten, maar dat kun je eenvoudig testen door zelf een dergelijk bestand te uploaden en te kijken wat er in die variabele zit. Juist omdat dit mime-type door de browser wordt gevuld is het een en ander wel afhankelijk van welk Office-pakket je hebt geïnstalleerd.
Als je zelf geen Office hebt en je computer dus deze Word-documenten niet kan openen, zal de browser bij het uploaden ook iets als application/unknown geven.

Een 2de optie in om naar de bestandsextensie te kijken. Dat kan met bijvoorbeeld pathinfo($_FILES['xx']['name'], PATHINFO_EXTENSION);

Tot slot kun je ook nog naar de daadwerkelijke inhoud van het bestand kijken om te bepalen wat dit is, bijvoorbeeld met finfo_file(). Lastige daarmee is wel weer dat een docx eigenlijk een zip-bestand is met daarin verschillende Office-gerelateerde bestanden, waardoor zeker de oudere libraries deze zullen herkennen als gecomprimeerd archief in plaats van Office-document.

Acties:
  • 0 Henk 'm!

Anoniem: 351482

Topicstarter
dankje fricky

en zie ook mn edit van de SP

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waar hoort mijn topic?
WEB >> PRG

Verder zou ik het op prijs stellen als je onze Quickstart, waar ik je eerder reeds op wees, eens hanteert als je een topic opent. Ik zie totaal geen eigen inzet terug in dit topic en verder zou het ook handig zijn als je even debugged (Debuggen: Hoe doe ik dat?) voordat je een topic opent. Dan had je die vraag met "welke string moet er in $_FILES['xx']['type'] zitten voor een docx" prima zelf kunnen beantwoorden.
Anoniem: 351482 schreef op zondag 26 september 2010 @ 23:52:
of weet iemand een manier waarmee ik een met de phpmailer class van worx gelijk een bestand kan meegeven als bijlage. zonder deze eerst te hoeven uploaden op de server? dat zou wel zo handig zijn..
Dit valt daar ook onder; waarom pak je nou niet héél even de documentatie erbij? En ziedaar: AddAttachment.

Ik ga dit topic op slot zetten met het vriendelijke verzoek voortaan meer zelf je best te doen voordat je een topic opent.
frickY schreef op zondag 26 september 2010 @ 23:57:
Een 2de optie in om naar de bestandsextensie te kijken. Dat kan met bijvoorbeeld pathinfo($_FILES['xx']['name'], PATHINFO_EXTENSION);
Je vergeet te vermelden dat optie 2 net zo onveilig (en waarschijnlijk nog onveiliger, want iedere kneus kan een extensie aanpassen van een bestand) is als optie 1 ;)

[ Voor 50% gewijzigd door RobIII op 27-09-2010 01:16 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.