Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php一次上载多个图像_Php_Mysql - Fatal编程技术网

如何使用php一次上载多个图像

如何使用php一次上载多个图像,php,mysql,Php,Mysql,我想在php中一次上载多个图像,但这些图像不会移动到文件夹中,phpmyadmin中的“媒体图像”列仍然为空 <form action="" method="post" enctype="multipart/form-data"> <div class="form-group"> <label for="post_status">ALBUM</label> <select name="media

我想在php中一次上载多个图像,但这些图像不会移动到文件夹中,phpmyadmin中的“媒体图像”列仍然为空

<form action="" method="post" enctype="multipart/form-data">    
    <div class="form-group">
        <label for="post_status">ALBUM</label>
        <select name="media_post_id" id="">
            <?php show_albums_add_media_page(); ?>
        </select>
    </div>
    <div class="form-group">
        <label for="post_image">Post Image</label>
         <input name="file[]" type="file" multiple="multiple" />
    </div>
    <div class="form-group">
        <input class="btn btn-primary" type="submit" name="create_media" value="Publish Media">
    </div>
</form>

专辑
后像
函数添加_媒体(){
如果(isset($\u POST['create\u media'])){
$media\u post\u id=转义字符串($\u post['media\u post\u id']);
foreach($\u FILES['file']['tmp\u name']作为$index=>$tmpName){
如果(!empty($tmpName)&&is_上传文件($tmpName))
{
$post_image=escape_字符串($_FILES['file']['name']);
$post_image_temp=escape_字符串($_FILES['file']['tmp_name']);
移动上传的文件($post_image_temp,../images/$post_image”);
$query=query(“插入到mediatar(媒体图片、媒体发布id)值(“{$post图片}”、“{$media发布id}”);
确认($query);
}
}
设置消息(“已添加新媒体!”);
重定向(“index.php?media”);
}
}

我建议您阅读,因为我假设
escape\u string()
使用
mysqli\u real\u escape\u string()
mysqli\u real\u escape\u string()
在使用错误时仍然容易被注入,而且
mysqli\u real\u escape\u string()
如果不先使用
mysqli\u set\u charset()
设置字符集,使用起来是完全不安全的,就像PHP手册中提到的那样。另外,您的代码没有真正检查上传的文件是否是图像,这意味着PHP文件也可以上传并在服务器上执行,我想这不是你想要的。这段代码片段集成到网站的管理页面中,所以在这种情况下sql注入不应该是一个大问题。为了上传这些文件,我应该更改什么?“为了上传这些文件,我应该更改什么?”我建议使用经过战斗测试的PHP框架上传模块,因为自己制作会(非常)耗时,而且你可能会出错。谢谢你的建议:)但是,因为这是一个照片组合,而客户不是noob,我认为我们不需要验证等等。只是为了上传。我想我在foreach循环中遇到了一些问题,但我无法识别它:/I建议您阅读,因为我假设
escape\u string()
使用
mysqli\u real\u escape\u string()
mysqli\u real\u escape\u string()
在使用错误时仍然容易被注入,而且
mysqli\u real\u escape\u string()
如果不先使用
mysqli\u set\u charset()
设置字符集,使用起来是完全不安全的,就像PHP手册中提到的那样。另外,您的代码没有真正检查上传的文件是否是图像,这意味着PHP文件也可以上传并在服务器上执行,我想这不是你想要的。这段代码片段集成到网站的管理页面中,所以在这种情况下sql注入不应该是一个大问题。为了上传这些文件,我应该更改什么?“为了上传这些文件,我应该更改什么?”我建议使用经过战斗测试的PHP框架上传模块,因为自己制作会(非常)耗时,而且你可能会出错。谢谢你的建议:)但是,因为这是一个照片组合,而客户不是noob,我认为我们不需要验证等等。只是为了上传。我认为我在foreach循环中遇到了一些问题,但我无法确定:/
function add_media(){
    if(isset($_POST['create_media'])) {

        $media_post_id     = escape_string($_POST['media_post_id']);

        foreach ($_FILES['file']['tmp_name'] as $index => $tmpName) {
            if( !empty( $tmpName ) && is_uploaded_file( $tmpName ) )
            {
                $post_image        = escape_string($_FILES['file']['name']);
                $post_image_temp   = escape_string($_FILES['file']['tmp_name']);
                move_uploaded_file($post_image_temp, "../images/$post_image" );
                $query = query("INSERT INTO mediatar(media_image,media_post_id) VALUES('{$post_image}','{$media_post_id}') ");  
                confirm($query);

            }
        }

        set_message("<h4 class='bg-success'>New medias have been added!</h4>");
        redirect("index.php?media");
    }
}