<?php
include("mysqlconnect.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 = "img/".$imagename;
if(move_uploaded_file($temp_name)) {
$query_upload="INSERT INTO test_image ('id' ,'image', 'image_path', 'submission_date') VALUES ('".$target_path."','".date("Y-m-d")."')";
mysqli_query($query_upload) or die("error in $query_upload == ----> ".mysqli_error());
}else{
exit("Error While uploading image on the server");
}
}
?>
警告:move_uploaded_file()需要2个参数,第29行/home/u957762221/public_html/saveimage.php中给出的参数为1
尝试将图像上传到服务器时,此代码会引发错误
答案 0 :(得分:2)
move_uploaded_file(string $filename, string $destination)
此功能需要第二个参数作为目标(上传文件的位置)。您刚刚给出了一个参数($temp_name
,即文件名)。我在你的代码中看到类似于destination的内容,所以请尝试这样做:
if(move_uploaded_file($temp_name, $target_path)) {
答案 1 :(得分:1)
首先,您可能不需要
GetImageExtension()
功能。 PHP的pathinfo()
可以很好地为你获得扩展。 无论如何;下面是move_uploaded_file($filename, $destination)
的正确语法,它接受2个参数:第一个是文件名(来自$ _FILES全局)和目标(你希望保存文件的路径 - 包括文件名,虽然。
<?php
include("mysqlconnect.php");
if (!empty($_FILES["uploadedimage"]["name"])) {
$file_name = $_FILES["uploadedimage"]["name"];
$temp_name = $_FILES["uploadedimage"]["tmp_name"];
$imgtype = $_FILES["uploadedimage"]["type"];
$ext = pathinfo($file_name, PATHINFO_EXTENSION);
$imagename = date("d-m-Y") . "-" . time() . "." . $ext;
$target_path = "img/".$imagename;
// YOU JUST FORGOT THE DESTINATION: $target_path ;-)
if(move_uploaded_file($temp_name, $target_path)) {
// HERE WE USED THE IMAGE-TYPE/EXT. AS THE VALUE FOR THE TABLE-COLUMN: `image`
// IT IS UP TO YOU TO SUBSTITUTE THE RIGHT VALUES THERE...
$query_upload = "INSERT INTO test_image ('image', 'image_path', 'submission_date') VALUES ";
$query_upload .= "('" . $ext . "', " . $target_path . "', '".date("Y-m-d")."' )";
mysqli_query($query_upload) or die("error in $query_upload == ----> ".mysqli_error());
}else{
exit("Error While uploading image on the server");
}
}
答案 2 :(得分:1)
必须为move_upload_file()传递两个参数,否则它将在上传时指出错误。
Arg:1 file
- 必填。指定要移动的文件
Arg:2 newloc
- 必填。指定文件的新位置
move_uploaded_file() - 这会将文件上传到我们在目标路径中指出的服务器,以便发现图像的检索很容易,并且图像显示是通过仅上传图片的帮助。
move_uploaded_file()函数将上传的文件移动到新位置。
此函数成功时返回TRUE,失败时返回FALSE。
语法:move_uploaded_file($filename, $filepath);
哪里
$filename: $_FILES["file"]["tmp_name"];
$filepath: is the folder where you need to upload the images.
mysqli_query($ conn,$ query_upload) - 它需要两个参数,一个是连接变量,另一个是用查询处理。
这里
$conn- Connection variable for the DB
$query_upload - It is the query to be executed.
用下面的代码替换你的代码。
<?php
if(move_uploaded_file($temp_name,$target_path)) {
$query_upload="INSERT INTO test_image ('image', 'image_path', 'submission_date') VALUES ('".$target_path."','".date("Y-m-d")."')";
mysqli_query($conn,$query_upload) or die("error in $query_upload == ----> ".mysqli_error());
}else{
exit("Error While uploading image on the server");
}
}
?>