Form stuurt alternatief bestand niet door; wel gewone bestand
Door
Hans De Ridder
op 13-07-2017 11:28
gewijzigd op 13-07-2017 12:09
4.334 views
Ik gebruik een form waar met het formulier een bestand meegestuurd kan worden.
Werkt allemaal prima.
Maar nu is het zo dat er ook echt een bestand meegestuurd MOET worden.
Ik dacht dit op te lossen door bij gebrek aan bestand dan een bestandje
mee te sturen.(0.jpg) Dat bestandje wordt overal netjes gezien en gecodeerd in script.
De key is aanwezig (1). Maar het wordt niet verstuurd bij alternatief van 0.jpg.
Foutmelding vanuit het error gedeelte bijv.:
'Het bestand kon niet verstuurd worden /tmp/0.jpgOPNtWj'.
Maak ik een denkfout, of zit er ergens wat verkeerd?;
Die bestaat gewoon Arien...
Want die gebruik ik om de extensie van het bestand te achterhalen voor hij gecodeerd de PHP verder induikt.
Desondanks laadt de alternatieve jpg niet in.
Ik zal nog eens kijken of ik iets kan wanneer ik de 0.jpg gewoon toevoeg bij de 'mail'.
En een eventueel gewoon bestand als extra bijlage erbij doe.
Bedankt voor je reactie...
Manipuleren van $_FILES door er andere naamgevingen in te stoppen heeft over het algemeen ook weinig zin, tenzij je een tijdelijk bestand op de plaats zet waar dit verwacht wordt en tmp_name ook verandert. Dat zou ik alleen nooit zo doen, omdat je dan het basisgedrag van PHP gaat manipuleren.
Geen idee? Brakke code? Wat op GitHub gebeurt hoeft toch niets te maken te hebben met wat jij aan het doen bent? Zie mijn vorige bericht voor een betere controle.
Een betere oplossing zou trouwens het verplicht stellen van een upload of het simpelweg niet meesturen van een attachment zijn als deze er niet is.
Stelt de ontvangende partij (van het e-mailbericht) een attachment met een afbeelding (of wat voor bestandstype?) verplicht? Ik zie de logica in heel deze constructie niet. Vervolgens meegaan in deze waanzin lijkt mij geen goed idee.
In dit geval gaat het erom dat iemand reageert op een vraag.
In de form hoeft niks ingevuld te worden. Is al allemaal automatisch gedaan. Alleen bestand erbij doen, of op submit drukken.
Dat kan zijn met een antwoord, of direct met een bestand. (afbeelding, mp3, enz)
Standaard staat er al een comment 'ik kan je wellicht helpen. Stuur even mailtje terug'. Die wordt gewijzigd als
er een bestand bij zit 'hierbij de gevraagde opname'.
[size=xsmall]Toevoeging op 13/07/2017 14:17:00:[/size]
Het gaat hier fout:
[code]
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
</code]
Zoals gezegd, dat gaat fout omdat je $_FILES probeert te manipuleren en tmp_name hier niet in meeneemt. Ik zou hier vanaf stappen en gewoon een alternatief codepad volgen wanneer er geen bestand geupload is.