我正在开发一个将图像上传到我的网站文件服务器的功能,同时会创建一个拇指预览并创建一个我的mysql数据库的条目。只要upload_image()的功能正常工作,它就会上传图像并完美地创建一个拇指。
问题是,当我单击提交按钮上传所选图像时,PHP函数会完成其工作,但会返回BLANK PAGE。是的,我知道,“死亡问题的另一个空白页面,去查找与此问题相关的所有其他53个帖子并找到解决方案”对吗?嗯,这不是那么简单。
我已经尝试了这些问题中的每一种方法,并且我在这个被遗弃的地方找到了另一组称为互联网,没有什么对我有用,我总是得到相同的死亡空白页,没有任何警告或错误。
我会问你尝试过什么?以下只是我回忆起的一组相关解决方案:
嗯,我尝试了其他解决方案,作为我的客人并提供一些答案,如果我已经尝试过,我会告诉你。
让我们接受它。我调用php文件的HTML代码是:
<form action="assets/php/image_uploader.php" method="post" enctype="multipart/form-data">
<input type="file" name="myfile" id="fileToUpload">
</br>
</br>
<input type="text" name="title" value="Titulo" size="64">
<br>
<br>
<input type="submit" value="Upload Image" name="submit">
</form>
我的image_uploader.php代码是:
<?php
function upload_image()
{
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
$name = "image_" . date('Y-m-d-H-i-s') . "_" . uniqid() . ".jpg";
$type= $_FILES["myfile"]["type"];
$size= $_FILES["myfile"]["size"];
$temp= $_FILES["myfile"]["tmp_name"];
$error= $_FILES["myfile"]["error"];
if ($error > 0)
{
die("Error uploading file! code $error.");
}
else
{
if($type=="image/png" || $size > 2000000)//condition for the file
{
die("Format not allowed or file size too big!");
}
else
{
if(move_uploaded_file($temp, $root . "/images/fulls/" . $name))
{
list($ancho, $alto) = getimagesize($root . "/images/fulls/" .$name);
$nuevo_alto = 212;
$nuevo_ancho = 212;
$dx = 0;
$dy = 0;
$sx = 0;
$sy = 0;
if($ancho == $alto)
{
}
else
{
if($ancho > $alto)
{
$nuevo_ancho = $ancho * (212/$alto);
}
else
{
$sy = $alto/2 - $nuevo_alto/2;
$alto = $ancho;
}
}
$thumb = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
$origen = imagecreatefromjpeg($root . "/images/fulls/" .$name);
imagecopyresampled($thumb, $origen, $dx, $dy, $sx, $sy, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
imagejpeg($thumb, $root . "/images/thumbs/" .$name);
imagedestroy($thumb);
echo "The file ". basename( $_FILES["myfile"]["name"]). " has been uploaded.";
}
}
}
}
if(isset($_POST['submit']))
{
upload_image();
}
?>
答案 0 :(得分:0)
试试这个:
$new_file = $root . "/images/fulls/" . $name;
copy($temp, $new_file);
if(!is_file($new_file)) {
die('cannot copy file');
}
还包括主要部分:
try{
}
catch(Exception $ex) {die('['.$ex->getLine().'] '.$ex->getMessage());}
答案 1 :(得分:0)
将代码放入HTML文件中,该文件稍后重命名为扩展名.php,并在表单部分中调用该函数:
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" enctype="multipart/form-data">
<input type="file" name="myfile" id="fileToUpload">
</br>
</br>
<input type="text" name="title" value="Titulo" size="64">
<br>
<br>
<input type="submit" value="Upload Image" name="submit">
</form>
现在它就好像它是神奇的,我不知道htmlspecialchar()函数是否与它有关,但现在代码没有错误。因此,我会将此作为答案发布,但提醒您不要将其视为BLANK PAGE死亡屏幕的解决方案。