我正试图编写一段代码,将图像和其他一些信息上传到我的mysql数据库中。但我做不到。php代码没有输入"if(!empty($_FILES["uploadedimage"]["name"])"语句。我不确定$_FILES是如何工作的。下面是我的文件输入标记的html代码,然后我也添加了我的php代码:
HTML:
<form id="myForm" action="inventory.php" enctype="multipart/form-data" class="form-horizontal" method="post" >
<div class="form-group">
<label for="confirm" class="col-sm-2 control-label">Image URL</label>
<div class="col-sm-10">
<input id="photo" name="uploadedimage" type="file" class="required">
</div>
</div>
以下是Php代码:
$item_code = $_POST['itemCode'];
$price = $_POST['price'];
$description = $_POST['description'];
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"])) {
echo "enter first if";
$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;
$imagename = $item_code.$ext;
$target_path = "images111/".$imagename;
if(move_uploaded_file($temp_name, $target_path)) {
$query_upload="INSERT into 'inventory' ('item_code', 'price', 'description', 'image') VALUES
('$item_code', '$price', '$description', '".$target_path."')";
mysql_query($query_upload) or die("error in $query_upload == ----> ".mysql_error());
}else{
exit("Error While uploading image on the server");
}
}
else
{
echo "command did not work";
}
您的$_FILE
是空的吗?
如果是,您的php.ini
是否正确配置为接受文件上载?您有几个指令必须正确配置。
- file_uploads是相当明显的。它需要设置为true才能接受文件上载
- upload_tmp_dir是文件上传时用于存储文件的临时目录。必须可由任何运行PHP的用户写入。通常PHP将使用默认的系统临时目录
- upload_max_filesize是已上载文件的最大大小。如果您的文件大于此值,则不会接受
-
post_max_size设置允许的帖子数据的最大大小,并影响文件上传。应设置为大于
upload_max_filesize
的值 -
memory_limit设置允许脚本分配的最大内存量(以字节为单位),并影响文件上载。一般来说,
memory_limit
应该大于post_max_size
如果这些设置中的任何一个配置不正确,您可能会得到一个空的$_FILES
数组。