【发布时间】:2015-05-14 23:10:10
【问题描述】:
我正在尝试创建一个上传表单,我可以在其中加载图像,然后图像的路径将保存在数据库中。当然,到目前为止还没有工作!这是我使用的代码:
<?php
include("db_connect.php");
function GetImageExtension($imagetype)
{
if(empty($imagetype)) return false;
switch($imagetype)
{
case 'image/bmp': return '.bmp';
case 'image/gif': return '.gif';
case 'image/jpeg': return '.jpg';
case 'image/png': return '.png';
default: return false;
}
}
if (!empty($_FILES["uploadedimage"]["name"])) {
$file_name=$_FILES["uploadedimage"]["name"];
$temp_name=$_FILES["uploadedimage"]["tmp_name"];
$imgtype=$_FILES["uploadedimage"]["type"];
$ext= GetImageExtension($imgtype);
$imagename=date("d-m-Y")."-".time().$ext;
$target_path = "images/".$imagename;
if(move_uploaded_file($temp_name, $target_path)) {
$query_upload="INSERT into 'walls' ('images_path','submission_date') VALUES ('".$target_path."','".date("Y-m-d")."')";
mysql_query($query_upload) or die("error in $query_upload == ----> ".mysql_error());
}else{
exit("Error While uploading image on the server");
}
}
?>
<h1>Image UPLOADER</h1>
<form action="uploader.php" enctype="multipart/form-data" method="post">
<table style="border-collapse: collapse; font: 12px Tahoma;" border="1" cellspacing="5" cellpadding="5">
<tbody><tr>
<td>
<input name="uploadedimage" type="file">
</td>
</tr>
<tr>
<td>
<input name="Upload Now" type="submit" value="Upload Image">
</td>
</tr>
</tbody></table>
</form>
db_connect.php
<?php
$sql_servername = "localhost";
$sql_user = "***";
$sql_pass = "***";
$sql_db_name = "***";
// connect to mysql server
$db = new mysqli($sql_servername, $sql_user, $sql_pass, $sql_db_name);
if (!$db) {
die('Could not connect to db: ' . mysql_error());
}
?>
当然我不能显示凭据,但我确信 100% 是正确的并且不存在问题!当我尝试上传时,我收到消息:
Error While uploading image on the server
但我不明白为什么以及如何解决。任何的想法?谢谢
【问题讨论】:
-
出于调试原因,您应该
print_r($_FILES)。我怀疑它会出错。 PHP 返回一个适当的错误代码以及文件数组,请查看此站点以查看所有可能的错误:php.net/manual/en/features.file-upload.errors.php -
mmh 我试图打印 print_r($_FILES) 但没有出现...正常吗?
-
将错误报告添加到您的文件顶部,紧跟在您的打开 PHP 标记之后,例如
<?php error_reporting(E_ALL); ini_set('display_errors', 1);然后是您的其余代码,以查看它是否产生任何结果。 -
ok wait now print 出现这个:
Array ( [uploadedimage] => Array ( [name] => icona.png [type] => image/png [tmp_name] => /tmp/phpARtAYu [error] => 0 [size] => 25916 ) ) Array -
print_r($_FILES)至少应该打印一个空数组。即使 error_reporting 被禁用。你在退出前做过吗?