クラス内のメソッドを使用して、画像ファイルをデータベースにアップロードしようとしています。関数のように機能するはずです。
私は2つのphpファイルを持っています。1つ目は、画像を受け取り、メソッドを呼び出すファイルです。
<?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);
}
?>
2つ目は、その仕事をする必要があるメソッドです。
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
追加情報として、メソッドを呼び出すときに配列を直接送信しようとしましたが、結果は得られなかったと言えます。
あなたが私を助けてくれることを願っています。皆さん、ありがとうございました。よろしく:)