【发布时间】:2016-01-17 23:45:26
【问题描述】:
我创建了一个测试页面来学习如何上传图片。我正在尝试将图像保存到我创建的名为 image 的文件夹中,然后在我的数据库中存储该图像的文件名,以帮助空间。现在图像文件名没有存储,而是单词Array 正在存储。我确实得到了一个错误,以及其他人。点击上传后,出现以下错误:
警告:move_uploaded_file(image/picturetest.jpg): 无法打开流:第 34 行的 /home4/fdfsfs/public_html/example.com/img_test.php 中没有此类文件或目录
警告:move_uploaded_file(): 无法在线将 /home4/fdsfafa/public_html/example.com/img_test.php 中的 '/tmp/phpUg7p4D' 移动到 'image/picturetest.jpg' 34
There was an error!
**注意:第 59 行 /home4/fdsfaf/public_html/example.com/img_test.php 中的数组到字符串转换
第 34 行是:
if (move_uploaded_file($tmp_name, $destinationFolder.$filename)) {
第 59 行是:
$stmt->execute();
完整脚本:
$filename = $_FILES['file']['name'];
//$filesize = $_FILES['file']['size'];
//$filetype = $_FILES['file']['type'];
$tmp_name = $_FILES['file']['tmp_name'];
$file_error = $_FILES['file']['error'];
if(isset($_POST['create'])){
$file = $filename;
$file = $_FILES['file'];
//$file = "productpics/". $_FILES['file']['name']; // save the filename
}else {
echo "error!";
}
if (isset($filename )) {
if (!empty($filename)) {
$destinationFolder = 'image/';
if (move_uploaded_file($tmp_name, $destinationFolder.$filename)) {
echo 'Uploaded!';
} else {
echo 'There was an error!';
}
} else {
echo 'Please choose a file.';
}
}
//Connection
$con = mysqli_connect("localhost","","","");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if ($stmt = mysqli_prepare($con, "INSERT INTO image (img) VALUES (?)")) {
/* bind parameters for markers */
$stmt->bind_param('s', $file);
/* execute query */
$stmt->execute();
//if(!$stmt->execute()){trigger_error("there was an error....".$con->error, E_USER_WARNING);}
/* close statement */
mysqli_stmt_close($stmt);
echo "Success!";
} else {
echo "Failed!";
}
$result = mysqli_query($con,"SELECT * FROM image");
if($row = mysqli_fetch_array($result)) {
if($row['img'] == ""){
echo "<img src='images/default_pic.png' alt='No Picture'>";
} else {
echo "<img src='images/".$row['img']."' alt='Profile Picture'>";
}
echo "<br><br><br><br>";
}
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="file" class="inputbarfile">
<input type="submit" name="create" id="signinButton" value="Upload">
</form>
有没有人看到我做错了什么???
【问题讨论】:
-
您可能希望将其保存到您的数据库中:
$destinationFolder.$filename -
至于第一个警告,你确定你把图片存储的文件夹放在了正确的地方吗?尝试使用
mkdir()创建文件夹 -
在顶部,您将
$file = $_FILES['file'];分配给$_FILES['file']数组给变量$file。在底部,您尝试将该数组写入数据库而不处理数组,因此它会写入Array -
警告是针对找到的目录或文件,因此它可能试图保存到与您预期不同的位置的文件夹中
-
嗯,您可能正在尝试存储最终目的地,即:
$destinationFolder.$filename。把它放到你的数据库中