我有上传文件夹,里面有动态,我正在根据图片ID创建另一个目录。
我正在创建目录,但图像未保存在其中!同时我想将文件夹的路径存储在数据库中。
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];
*/
//此代码将图片保存在上传文件夹中,而不是 $ 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新手。在此先感谢
答案 0 :(得分:1)
move_uploaded_file()需要文件名和目的地。我猜你2.参数不好。您可以在此处详细了解:PHP move-uploaded-file
试试这个:
$folderPath = "uploads/".$img_id;
$isimgpath= mkdir(folderPath);
if(isimgpath){
move_uploaded_file($_FILES['c_photo']['tmp_name'], $folderPath);
}
我猜你的数据库插入可能会起作用,但它在它之前失败了,这就是为什么它不存在。 您可以将映像路径保存到db。您创建一个“$ path1”值,将其放入数据库插入。我看到它包含一个名称为的图像路径。
$query1 ="INSERT INTO img_tbl(`img_id`,`img_photo`) VALUES ('$img_id', ". $path1 .")";
尝试修改输入,如下所示:
<input class="form-control" type="file" name="c_photo" />
答案 1 :(得分:0)
您的上传代码存在问题tmp_name
,它提供了来自服务器的临时存储路径
move_uploaded_file($_FILES['c_photo']['tmp_name'][0], $path1);
启用错误报告以显示错误How do I get PHP errors to display?
答案 2 :(得分:0)
假设表单具有正确的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();
}
?>