Php 如何将图像保存在动态创建的目录中?如何在DB中保存文件夹的路径?
我有一个uploads文件夹,在里面,我根据图像id动态地创建另一个目录 我正在创建目录,但图像没有保存在其中!同时,我想在数据库中存储文件夹的路径Php 如何将图像保存在动态创建的目录中?如何在DB中保存文件夹的路径?,php,html,Php,Html,我有一个uploads文件夹,在里面,我根据图像id动态地创建另一个目录 我正在创建目录,但图像没有保存在其中!同时,我想在数据库中存储文件夹的路径 if(isset($_POST['submit'])){ $img_id=$_POST['img_id']; /* $imgpath= mkdir("uploads/".$img_id); $path1= "$imgpath/".$_FILES['c_photo']['name'][0]; move_uplo
if(isset($_POST['submit'])){
$img_id=$_POST['img_id'];
/* $imgpath= mkdir("uploads/".$img_id);
$path1= "$imgpath/".$_FILES['c_photo']['name'][0];
move_uploaded_file($_FILES['c_photo']['name'][0], $path1);
$img_photo=$_FILES['c_photo']['name'][0];
*/
//这段代码将图像保存在uploads文件夹中,而不是$imgpath目录下
$imgpath=mkdir("uploads/".$img_id);
$path1="uploads/".$_FILES['c_photo']['name'][0];
move_uploaded_file($_FILES['c_photo']['tmp_name'][0],$path1);
$query1 ="INSERT INTO img_tbl(`img_id`,`img_photo`) VALUES ('$img_id', '$path1')";
if ($conn->query($query1) === TRUE) {
header("location:show_img.php?");
}
else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
?>
<div class="col-sm-12">
<div class="col-sm-3">
<label>Image id</label>
</div>
<div class="col-sm-9">
<input class="form-control" type="text" name="img_id""/>
</div>
</div>
<div class="col-sm-12">
<div class="col-sm-3">
<label>Upload photo</label>
</div>
<div class="col-sm-9">
<input class="form-control" type="file" name="c_photo[]" />
</div>
</div>
<div class="col-sm-5">
<input class="form-control" type="submit" name="submit" value="Save"/>
</div>
请帮帮我。我是php新手。提前感谢您对上载代码有问题,应该是tmp_名称,它提供了来自服务器的临时存储路径
move_uploaded_file($_FILES['c_photo']['tmp_name'][0], $path1);
启用错误报告以显示错误假设表单具有正确的enctype属性multipart/form data,并且您正在上载单个文件,而不是使用循环上载多个文件,那么以下内容可能会有一些帮助,但未经测试
<?php
if( isset( $_POST['submit'], $_POST['img_id'] ) && !empty( $_FILES['c_photo'] ) ){
/* for convenience, convert to an object to use Object notation */
$obj=(object)$_FILES['c_photo'];
$tmp=$obj->tmp_name;
$name=$obj->name;
$error=$obj->error;
$img_id=$_POST['img_id']; /* peculiar knowing the ID before inserting into the database?? */
$savepath=__DIR__ . '/uploads/' . $img_id;
mkdir( $savepath, 0644 );/* create directory & set directory perms */
$path = $savepath.'/'.$name;
$result = is_uploaded_file( $tmp ) & move_uploaded_file( $tmp, $path );
if( $result ){
$query ="INSERT INTO img_tbl( `img_id`, `img_photo` ) VALUES ('$img_id', '$name')";
$result=$conn->query( $query );
if( $result ){
header( "location:show_img.php?img_id=".$img.id );
} else {
echo "Error: ";
}
}
$conn->close();
}
?>
移动上传的文件需要文件名和目标。我猜你2。参数不好。您可以在此处阅读更多信息: 试试这个:
$folderPath = "uploads/".$img_id;
$isimgpath= mkdir(folderPath);
if(isimgpath){
move_uploaded_file($_FILES['c_photo']['tmp_name'], $folderPath);
}
我想您的DB插入可能会工作,但在它之前失败了,这就是为什么它不在。
您可以将图像路径保存到db。创建一个$path1值,将其放入DB Insert中。如我所见,它包含一个带有名称的图像路径
$query1 ="INSERT INTO img_tbl(`img_id`,`img_photo`) VALUES ('$img_id', ". $path1 .")";
尝试按如下方式修改输入:
<input class="form-control" type="file" name="c_photo" />
你正在上传一个或多个文件吗?你在里面写了你的html吗?还是只创建一个目录…图像没有保存在DirectoryMe中。。mkdir的返回值是布尔值-不是实际路径。更改了上述代码它不适用于我..请指导是否有其他可能的方式图像未在动态创建的文件夹中移动..请帮助我编辑我的文本,检查它。尝试在某处回显$imgpath和$_文件['c_photo']['tmp_name']。如果这些值为空,那么这就是你的问题的另一个原因。哦,是的。mkdir返回true或false 1或0。这就是move_上传的_文件的问题。我修改了示例。folderpath目录是在uploads文件夹外创建的,在uploads文件夹内创建了一个名为createdbut的文件。它不是文件夹。它是其中的文件和图像。这是一个很小的错误。它创建的文件不是uploads文件夹内的文件夹。请给我一些时间来解决我的问题