Archief - PHP: Image upload script

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

trcontent

Legacy Member
Hallo

ik heb een upload script, maar als je geen foto selecteerd maar gewoon op uload drukt, dan komt er een witte pagina. Hoe kan ik daar dan een error op laten komen zoald bv : kies een foto voor dat je kan uploaden.

dit is mijn script :

<?
include "config.php";
if (!isset($HTTP_POST_FILES['userfile'])) exit;
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
if ($HTTP_POST_FILES['userfile']['size']>$ms) {
echo "Your File Size is too big, please reduce the size and try again.<br>\n"; exit; }
if(($HTTP_POST_FILES['userfile']['type']=="image/gif") ||
($HTTP_POST_FILES['userfile']['type']=="image/pjpeg") || ($HTTP_POST_FILES['userfile']['type']=="image/jpeg") ||
($HTTP_POST_FILES['userfile']['type']=="image/jpg") ||
($HTTP_POST_FILES['userfile']['type']=="image/jpg") ||
($HTTP_POST_FILES['userfile']['type']=="image/bmp") ||
($HTTP_POST_FILES['userfile']['type']=="image/JPEG") ||
($HTTP_POST_FILES['userfile']['type']=="image/png")) {
if (file_exists("./".$path . $HTTP_POST_FILES['userfile']['name'])) {
echo "File name exists please rename then try again.<br>\n"; exit; }
$zufall = rand(1,99999);
$fupl = "$zufall";
$res = copy($HTTP_POST_FILES['userfile']['tmp_name'], "./" .$path .$fupl .$HTTP_POST_FILES['userfile']['name']);
if (!$res) { echo "Upload Failed, please try again<br>\n"; exit; } else {
?>
<br>
<?php
//set url variable
$domst = "";
$drecks = "/";
$imgf = $fupl.$HTTP_POST_FILES['userfile']['name'];
$thbf = $imgf;
$urlf = $domst .$drecks .$path .$imgf;
//create thumbnails
function LoadWBMP($imgname)
{
$im = @imagecreatefromwbmp($imgname); /* Attempt to open */
if (!$im) { /* See if it failed */
$im = imagecreatetruecolor (20, 20); /* Create a blank image */
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 10, 10, $bgc);
/* Output an errmsg */
imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
}
return $im;
}
?>

dankje

Michael

Tyfius

Legacy Member
Jij hebt dit staan:
PHP:
if (!isset($HTTP_POST_FILES['userfile'])) exit;
In plaats van gewoon te exiten moet je dus je error weergeven.

trcontent

Legacy Member
Oke, ik heb dit nu gemaakt maar dan krijg ik hetzelfde resultaat :

PHP:
if (!isset($HTTP_POST_FILES['userfile'])) {
echo "Geen bestand gevonden voor het uploaden.<br>\n"; exit; }

doe ik misschien iets verkeerd ? ik ben nog wel aan het leren schrijven :)
Alvast bedankt

wxphe

Legacy Member
Ik zou werken met de variabele $_files zoals aangeraden wordt in de manual van php. http://be2.php.net/manual/nl/features.file-upload.php#features.file-upload.post-method

Zo raden zij het aan:
PHP:
<?php 
   // Voor PHP 4.1.0 moet $HTTP_POST_FILES gebruikt worden in plaats van $_FILES.
   if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
       copy($_FILES['userfile']['tmp_name'], "/plaats/om/heen/te/verplaatsen");
   } else {
       echo "Mogelijke aanval gespot: " . $_FILES['userfile']['name'];
   }
   /* ...of... */
   move_uploaded_file($_FILES['userfile']['tmp_name'], "/plaats/om/heen/te/verplaatsen");
   ?>

caoimhin

Legacy Member
Smoerf zei:
Zoiets? http://joggink.be/snippets/imageUpload/ (firefox only, geen zin/tijd om het te fixen in IE)

als je wil wil ik je wel de code mailen

Mooi script, anders mag je het gerust naar mij mailen ook :) wil mij gerust mee bezig houden om het te fixen in andere browsers :) eens dat werkt is het trouwens kleine moeite om u dat terug te bezorgen :)

kevin [DOT] vandenhaute [AT] hotmail [DOT] com
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan