Moin,
Ich hab ein kleines Geschwindigkeitsproblem beim Pictureupload.
Wenn ich mehr als 2 Bilder gleichzeitig hochladen möchte, schmiert der Apache meines Webspaceanbieters ab und an ab. Er bietet mir die PHP Datei zum Download an.
Da ich beim Upload die Bilder via PictureResize auf die Erforderliche Größe zurecht schneide dauert das bei 10 Bildern ein bissel. Mein Webspaceanbieter meint das liege an meinem Script, das mir die PHP Datei zum Download angeboten würde.
Daher meine Frage, was müsste am Script geändert werden, damit das schneller durchläuft?
Hier das Script:
PHP-Code:
<?php
$db = new db_local;
$db->query("SELECT benutzername, userstatus FROM user WHERE userid ='".$_SESSION['logid']."'");
$db->next_record();
echo $_POST["ordner"]."<br>";
$num_of_uploads=10;
$file_types_array=array("jpg","JPG");
$max_file_size=1048576;
$upload_dir=$_POST["ordner"]."/";
$upload_dir2=$_POST["ordner"]."/thumbs/";
function uploaderFILES($num_of_uploads=1, $file_types_array=array("jpg","JPG"),
$max_file_size=1048576, $upload_dir="", $upload_dir2=""){
if(!is_numeric($max_file_size)){
$max_file_size = 1048576;
}
foreach($_FILES["file"]["error"] as $key => $value)
{
if($_FILES["file"]["name"][$key]!="")
{
if($value==UPLOAD_ERR_OK)
{
$origfilename = $_FILES["file"]["name"][$key];
$filename = explode(".", $_FILES["file"]["name"][$key]);
$filenameext = $filename[count($filename)-1];
unset($filename[count($filename)-1]);
$filename = implode(".", $filename);
$filename = substr($filename, 0, 15).".".$filenameext;
$file_ext_allow = FALSE;
for($x=0;$x<count($file_types_array);$x++){
if($filenameext==$file_types_array[$x])
{
$file_ext_allow = TRUE;
}
} // for
if($file_ext_allow){
if($_FILES["file"]["size"][$key]<$max_file_size){
if(move_uploaded_file($_FILES["file"]["tmp_name"][$key], $upload_dir.$filename)){
$PicPathIn=$upload_dir;
$PicPathOut=$upload_dir;
// Orginalbild
$bild=$filename;
// Bilddaten feststellen
$size=getimagesize("$PicPathIn"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=471;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
if($size[2]==2) {
// JPG
$altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
$neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,
$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$PicPathOut"."$bild");
}
echo("Datei wurde erfolgreich hochgeladen. -
<a href='".$upload_dir.$filename."' target='_blank'>".$filename."</a><br />");
$PicPathIn=$upload_dir;
$PicPathOut=$upload_dir2;
// Orginalbild
$bild=$filename;
// Bilddaten feststellen
$size=getimagesize("$PicPathIn"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=150;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
if($size[2]==2) {
// JPG
$altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
$neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,
$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$PicPathOut"."$bild");
}
}
else { echo('<font color="#FF0000">'.$origfilename."</font> wurde
nicht erfolgreich hochgeladen <br />");}
}
else { echo('<font color="#FF0000">'.$origfilename."</font> ist zu groß und wurde
nicht hochgeladen.<br />"); }
} // if
else{ echo('<font color="#FF0000">'.$origfilename." </font> hat ein ungültiges
Dateiformat. Es sind nur .jpg Dateien erlaubt! <br />"); }
}
else{ echo('<font color="#FF0000">'.$origfilename." </font> wurde nicht erfolgreich
hochgeladen. Keine Ahnung warum. <br />"); } // else
}
}
} // funtion
/////////////////////////////////////////
?>
<form action="?seite=galerie3" method="post" enctype="multipart/form-data">Upload
files:<br /><input type='hidden' name='submitted' value='TRUE' id="<?=time();?>" >
<input type='hidden' name='MAX_FILE_SIZE' value='<?php echo $max_file_size; ?>' >
<?php for($x=0;$x<$num_of_uploads;$x++){
$form .= "<input type='file' name='file[]' size='25'><br />";
}
$form .= "<input type='submit' value='Upload'><br />
Maximale Länge des Dateinamens (minus Dateiendung) ist 15 Zeichen. Alles über 15
Zeichen wird auf die Maximale Länge gekürzt. Die Dateinamen dürfen keine Leerzeichen
enthalten. Gültiger Dateityp: ";
for($x=0;$x<count($file_types_array);$x++){
if($x<count($file_types_array)-1){
$form .= $file_types_array[$x].", ";
}else{
$form .= $file_types_array[$x].".";
}
}
echo($form);
?>
<input type="hidden" name="ordner" value="<?php echo $_POST[ordner]; ?>">
</form>
<?php
if(isset($_POST["submitted"])){
uploaderFILES($num_of_uploads, $file_types_array, $max_file_size, $upload_dir, $upload_dir2);
}
?>
Danke schon mal für eure Hilfe