我有一个托管网站,我想将我的图像上传到图像目录,并将图像链接到mysql数据库。
我做了什么:
创建表单:
<form method=POST align=center enctype="multipart/form-data">
<input type=file name=image>
Php代码:
$uploaddir = 'images/';
// echo $uploaddir;
$target = "$uploaddir".basename($_FILES['image']['name']);
echo $target;
$image = $_FILES['image']['name'];
$sql="insert into News2(image_News2)
values($image)";
$res=mysqli_query($con,$sql);
copy($_FILES['tmp_name']['name'],$target,true);
此代码实际上只是将图像插入数据库而不是将图像复制到images文件夹中。
我搜索并找到了什么:
您不应将http:// URL指定为$ uploaddir,而应指定相对于运行php脚本的路径的路径。
所以我真正想做的是:
1-将图像复制到网站上的图像文件夹目录中。 2-将复制的图像链接到数据库。
答案 0 :(得分:1)
你错过了名字ïmage“ 不是:
copy($_FILES['tmp_name']['name'],$target,true);
但:
move_uploaded_file($_FILES['image']['tmp_name'], $target);
也许你应该首先尝试移动,然后将其插入数据库,如果该操作失败(或filesize = 0)等。
如果文件操作和数据库操作失败,请检查它们:rollback
额外:
数据库表中只有1列? 使用上传文件的名称是明智的吗?重复可能发生。 我会在检查文件后将原始名称插入数据库。获取该记录的自动增量ID。将文件重命名为./1234.jpg
通过数据库,您可以稍后使用原始名称。但是这个编号对于一个简单的应用来说可能太过变化了
答案 1 :(得分:0)
根据您提供的数据,您必须关闭Form标签,然后使用form action =“”属性来指定url。如果您的操作系统是linux,那么检查文件夹权限是否设置,如果字段名称设置为唯一,还检查您的数据库表? 然后在给定的url文件中写下代码
答案 2 :(得分:0)
PHP代码:
if (isset($_FILES['image']['name']) && $_FILES['image']['error']
== 0) {
$uploads_dir = '/uploads';
$temp_file = $_FILES['image']['tmp_name'];
$name = basename($_FILES["image"]["name"]);
if(move_uploaded_file($temp_file, "$uploads_dir/$name")){
//Fire Insert Query For Insert image name in your database
}
else
{
echo "Error !! , Your image not uploaded.";
}
}
?>