Ansics
Cadet 4th Year
- Registriert
- Mai 2003
- Beiträge
- 107
Hallo Leute,
ich habe hier eine Klasse "Upload" welche einige Funktionalität für den Upload für Dateien zur Verfügung stellt. Ich verwendet die Funktion getFileName um mir den Dateinamen der hochgeladenen Datei zu holen.
Jetzt kommt das Problem:
In meiner lokalen Apache Umgebung funktioniert alles. Auf dem Zielserver (Windows) funktioniert FAST alles. Die Datei wird hochgeladen, aber der Dateiname wird nicht ermittelt und somit wird ein leeres Feld in die Datenbank gespeichert und man kann die Datei als Besucher der Page nicht runterladen weil dann im Wuellcode sowas steht:
Ich hab hier den Code der Klasse Upload:
Der Codeschnipsel aus der PHP Datei, weche diese Klasse verwendet sieht so aus:
Wie gesagt funktioniert hier NUR das getFileName nicht richtig
Wer kann mir helfen?
Gruß
Ansics
ich habe hier eine Klasse "Upload" welche einige Funktionalität für den Upload für Dateien zur Verfügung stellt. Ich verwendet die Funktion getFileName um mir den Dateinamen der hochgeladenen Datei zu holen.
Jetzt kommt das Problem:
In meiner lokalen Apache Umgebung funktioniert alles. Auf dem Zielserver (Windows) funktioniert FAST alles. Die Datei wird hochgeladen, aber der Dateiname wird nicht ermittelt und somit wird ein leeres Feld in die Datenbank gespeichert und man kann die Datei als Besucher der Page nicht runterladen weil dann im Wuellcode sowas steht:
Code:
<a href=''>beispiel</a>
Ich hab hier den Code der Klasse Upload:
PHP:
<?php
class Upload
{
var $upload_tmp_dir; // leading and trailing slash required
var $file_upload_flag;
var $upload_max_filesize;
var $uploadDir; // leading and trailing slash required
var $filesArrayName;
function Upload($filesArrayName, $uploadDir)
{
$this->upload_dir = $uploadDir;
$this->filename = $_FILES[$this->filesArrayName]['name'];
if(is_null($_FILES[$filesArrayName]))
{
echo "Specified file <strong> ".$name." </strong> does not exist in the FILES array. Please check if it exists";
echo "Exiting...";
exit;
}
$this->upload_tmp_dir = ini_get('upload_tmp_dir');
$this->file_upload_flag = ini_get('file_uploads');
$this->upload_max_filesize = preg_replace('/M/', '000000', ini_get('upload_max_filesize'));
if( $this->file_upload_flag == "off" )
{
echo "File upload capability in the configuration file is turned <strong> off </strong> . Please update the php.ini file.";
exit;
}
$this->filesArrayName = $filesArrayName;
}
function getErrors() {
return $_FILES[$this->filesArrayName]['error'];
}
function getFileSize() {
return $_FILES[$this->filesArrayName]['size'];
}
function getFileName() {
return $_FILES[$this->filesArrayName]['name'];
}
function getTmpName() {
return $_FILES[$this->filesArrayName]['tmp_name'];
}
function checkMaxMemorySizeLimit() {
if( $this->getFileSize() > $this->upload_max_filesize ) {
return true;
}else{
return false;
}
}
function uploadFile()
{
if(!isset($newFileName))
$newFileName = $this->getFileName();
if($this->checkMaxMemorySizeLimit())
{
echo "File size of ".$this->getFileSize()." greater than allowable limit of ".$this->upload_max_filesize."Please change the configuration setting.";
return;
}else{
if( !move_uploaded_file($this->getTmpName(), $this->upload_dir.$newFileName) ) {
echo "Failed to upload file ".$this->getTmpName();
}
}
}
function uploadPic()
{
if( $this->checkMaxMemorySizeLimit() )
{
echo "File size of ".$this->getFileSize()." greater than allowable limit of ".$this->upload_max_filesize."Please change the configuration setting.";
return;
}
else
{
$filenameSmall = $this->upload_dir.'.tmp_s.'.$this->getFileName();
$filenameLarge = $this->upload_dir.'.tmp_l.'.$this->getFileName();
$maxWidthSmall = 100;
$maxHeightSmall = 100;
$maxWidthLarge = 1000;
$maxHeightLarge = 1000;
list($widthTmp, $heightTmp) = getimagesize($this->getTmpName());
if($widthTmp/$heightTmp >= 1) // Pic "breiter als hoch"
{
$widthSmall = $maxWidthSmall;
$heightSmall = $heightTmp * $widthSmall / $widthTmp;
$widthLarge = $maxWidthLarge;
$heightLarge = $heightTmp * $widthLarge / $widthTmp;
}
else
{
$heightSmall = $maxHeightSmall;
$widthSmall = $widthTmp * $heightSmall / $heightTmp;
$heightLarge = $maxHeightLarge;
$widthLarge = $widthTmp * $heightLarge / $heightTmp;
}
if(preg_match("/.jpg/i", $this->getFileName()))
{
$picTmp = imagecreatefromjpeg($this->getTmpName());
$picSmall = imagecreatetruecolor($widthSmall, $heightSmall);
imagecopyresized($picSmall, $picTmp, 0, 0, 0, 0, $widthSmall, $heightSmall, $widthTmp, $heightTmp);
imagejpeg($picSmall, $filenameSmall);
$picLarge = imagecreatetruecolor($widthLarge, $heightLarge);
imagecopyresized($picLarge, $picTmp, 0, 0, 0, 0, $widthLarge, $heightLarge, $widthTmp, $heightTmp);
imagejpeg($picLarge, $filenameLarge);
}
else if (preg_match("/.gif/i", $this->getTmpName()))
{
}
else if(preg_match("/.png/i", $this->getTmpName()))
{
}
}
}
}
Der Codeschnipsel aus der PHP Datei, weche diese Klasse verwendet sieht so aus:
PHP:
$ul = new upload("file1","../download/");
if($ul->uploadFile())
$pfad = $ul->getFileName();
$jetzt = time();
$datenbankeintrag = "INSERT INTO downloads (titel,beschreibung,datei,datum) VALUES ('".$_POST['titel']."','".$_POST['beschreibung']."','".$pfad."',".$jetzt.")";
$db = new DB();
if ($db->query($datenbankeintrag)){
$message = "Der Download wurde erfolgreich eingerichtet";
}
Wie gesagt funktioniert hier NUR das getFileName nicht richtig
Wer kann mir helfen?
Gruß
Ansics