问题在于:
我有一个代码将图片上传到phpmyadmin,代码...由于某种原因没有完全正常工作,它没有完全上传图像,图像最终只有一个非常小的尺寸,它赢了也不要出现。如果我将它们直接上传到数据库,可以显示它们,但使用下面的代码上传的那些有问题。
这是我的代码:
按钮代码:
<div id="content">
<form method="POST" action =""/>
<table>
<tr>
<td>
Upload a picture
</td>
<td>
<input type="file" name="image"/>
</td>
</tr>
</table>
<input type="submit" name="submit" value="Registrarme"/> <input type="reset"/>
</form>
<?php
if(isset($_POST['submit'])){
require("iniciar.php");
}
?>
</div>
上传代码:(iniciar.php)
<?php
$image = $_POST['image'];
$reqlen = strlen($image);
if($reqlen > 0){
$conn = mysqli_connect('localhost','root','','image');
$sql = "INSERT INTO `images` VALUES ('', '$image', '')";
mysqli_query($conn, $sql);
echo 'Upload successful';
}else{
echo 'Please insert an image';
}
?>
这是表格的结构: The table I have
答案 0 :(得分:0)
您正在分配类似输入数据而不是
$_FILES["image"]["name"];
//remove thisline
$image=$_POST['evidence'];
// you have to use it like this
$image= $_FILES["image"]["name"];
你必须像这样分配图像
$target_file = $target_dir . '/' . basename($_FILES["image"]["name"]);
$image=$target_file;
现在证据保持图像的地址所以dir。图像现在也是证据。现在它将被上传到数据库,你没有传递数据。这是错误的。任何问题评论。如果它解决了你的问题,请将其标记为已解决:)
供参考,这是用于上传个人资料图片的php脚本,
<?php
if(isset($_POST["submit"]))
{
$target_dir = "profilepic/";
$targetfile=$target_dir.basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($targetfile,PATHINFO_EXTENSION);
if($imageFileType != "jpg" &&$imageFileType != "JPG" && $imageFileType != "png" && $imageFileType != "PNG" && $imageFileType != "jpeg" && $imageFileType != "JPEG" && $imageFileType != "gif" && $imageFileType != "GIF" )
{
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
if ($uploadOk == 0)
{
echo "<small>Sorry, your file was not uploaded.</small>";
}
else
{
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetfile))
{
echo "<small>upload successful</small>";
$imgdir="UPDATE user SET profilepic='$targetfile' WHERE username='$uname';";
$con->query($imgdir);
header("location:profile.php");
}
else
echo "not uploaded";
}
}
?>
根据您的数据库进行更改操作强>