2
我試圖使用類內的方法將圖像文件上傳到數據庫。它應該像一個函數一樣工作。嘗試使用類方法將文件上傳到數據庫
我有2個PHP文件。第一個,接收圖像,並調用該方法的文件:
<?php
if (!empty($_FILES)){
require_once('masterclass.php');
$galeria = $_POST['gal'];
$fecha = $_POST['fecha'];
$titulo = $_FILES['Filedata']['name'];
$imagen = $_FILES['Filedata']['tmp_name'];
$mc = new masterclass;
$mc->saveImage($galeria, $fecha, $titulo, $imagen, 800, 600, 80);
}
?>
第二個,是應該做的工作方法:如果我直接在方法做的工作
public function saveImage($galeria, $fecha, $titulo, $tmpImagen, $maxWidth, $maxHeight, $quality){
if(isset($galeria, $fecha, $titulo, $tmpImagen, $maxWidth, $maxHeight, $quality)){
$ms->dbc(true); // connect to database
$fecha = $this->formatFecha($fecha); // format date string
$origen = imagecreatefromjpeg($tmpImagen);
$x = imagesx($origen);
$y = imagesy($origen);
if($x > $maxWidth){
$nx = $maxWidth;
$ny = $y*$nx/$x;
}
if($y > $maxHeight){
$ny = $maxHeight;
$nx = $x*$ny/$y;
}
else{
$nx = $x;
$ny = $y;
}
$destino = imagecreatetruecolor($nx,$ny);
imagecopyresized($destino,$origen,0,0,0,0,$nx,$ny,$x,$y);
imagejpeg($destino, $tmpImagen, $quality);
$imagen = addslashes(fread(fopen($tmpImagen, "rb"), filesize($tmpImagen)));
$peticion = "insert into galeria_fotos (galeria, fecha, titulo, imagen) values ('$galeria', '$fecha', '$titulo', '$imagen')";
mysql_query($peticion) or die($this->isError(2));
$ms->dbc(false); // disconnect from database
}
else{
die($this->isError(2));
}
}
第一個PHP文件的作品。但是,當我從類中使用saveImage()時不會。 自從去年以來,我一直在使用JavaScript,並且我對PHP很冷淡。
對不起西班牙語中的變量名,但我認爲這是完全可以理解的。
作爲額外的信息,我可以說,我試圖調用方法時直接發送$_FILES
數組,沒有結果。
希望你能幫助我。謝謝你們。問候:)
我的眼睛正在受傷 – TFennis 2013-03-15 18:23:32
嗨,這需要進行基本的調試。它究竟在哪裏失敗?我注意到你用'isset($ galeria,...)來啓動函數...'是否滿足條件,即每個參數集? – 2013-03-15 18:25:19
@TFennis,令我害怕,我是一個不熟練的PHP開發人員,而且我的英文數量有限(和我在這裏,試圖獲得幫助),但你的評論並沒有幫助我。謝謝無論如何... – kosmos 2013-03-15 18:28:18