如何使用php一次上载多个图像
我想在php中一次上载多个图像,但这些图像不会移动到文件夹中,phpmyadmin中的“媒体图像”列仍然为空如何使用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
<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");
}
}