将图像数组上传到服务器文件夹并保存到 php 中的数据库
upload array of images to server folder and save into database in php
我尝试为等效的文本框值创建动态文本框和动态图像。我得到了我的 thought.while 我需要从 array.I 上传动态图像写一个代码来上传但只有最后一张图像将是 uploaded.Help 我的朋友..这是我的代码
php代码:
$query = "INSERT INTO tbl_content(user_id,heading,content,content_image) VALUES ";
for($i=0;$i<$itemCount;$i++) {
echo $cimage=$_FILES['image1']['name'][$i];
$q2=mysql_query("select max(user_id) as id from tbl_content");
$fe=mysql_fetch_array($q2);
$b=$fe['id']+1;
if($cimage!="")
{
$pos=strrpos($cimage,'.');
$mainext=substr($cimage,($pos+1));
$title=$b.'.'.$mainext;
move_uploaded_file($_FILES['image1']['tmp_name'][$i],$upload.$title);
} else {
$title="";
}
if(!empty($_POST["name1"][$i]) || !empty($_POST["name2"][$i])) {
$itemValues++;
if($queryValue!="") {
$queryValue .= ",";
}
$queryValue .= "('".$user_id. "', '".$_POST["name1"][$i]."', '".$_POST["name2"][$i]."', '".$cimage."')";
}
}
$sql = $query.$queryValue;
$itemValues;
if($itemValues!=0) {
$result = mysql_query($sql);
if(!empty($result)) $message = "Added Successfully.";
}
Html代码:
<DIV class="product-item float-clear" style="clear:both;">
<table cellspacing="2">
<tr>
<td><DIV class="float-left"><input type="checkbox" name="item_index[]" /></DIV></td>
<td><DIV class="float-left">Heading:<input type="text" name="name1[]" style="width:60px" /></DIV></td>
<td><DIV class="float-left">Content:<textarea type="text" name="name2[]" style="width:90px"/></textarea></DIV></td>
<td>
<DIV><input name="image1[]" id="pro_image" type="file" size="45" /></Div></td>
</DIV>
</tr>
</table>
</body>
帮帮我的朋友.....
您的代码格式不正确。但是可以理解你的问题是什么。请像下面这样尝试。
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files
foreach ($_FILES['image1']['name'] as $f => $name) {
if ($_FILES['image1']['error'][$f] == 0) {
if ($_FILES['image1']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES["image1"]["tmp_name"][$f], $path.$name))
//Write insert query here. image name $_FILES["image1"]["name"][$f]
}
}
}
}
您必须在输入中使用 多个 属性:
<input multiple="multiple" name="image1[]" id="pro_image" type="file" size="45" />
另请参阅:
我尝试为等效的文本框值创建动态文本框和动态图像。我得到了我的 thought.while 我需要从 array.I 上传动态图像写一个代码来上传但只有最后一张图像将是 uploaded.Help 我的朋友..这是我的代码
php代码:
$query = "INSERT INTO tbl_content(user_id,heading,content,content_image) VALUES ";
for($i=0;$i<$itemCount;$i++) {
echo $cimage=$_FILES['image1']['name'][$i];
$q2=mysql_query("select max(user_id) as id from tbl_content");
$fe=mysql_fetch_array($q2);
$b=$fe['id']+1;
if($cimage!="")
{
$pos=strrpos($cimage,'.');
$mainext=substr($cimage,($pos+1));
$title=$b.'.'.$mainext;
move_uploaded_file($_FILES['image1']['tmp_name'][$i],$upload.$title);
} else {
$title="";
}
if(!empty($_POST["name1"][$i]) || !empty($_POST["name2"][$i])) {
$itemValues++;
if($queryValue!="") {
$queryValue .= ",";
}
$queryValue .= "('".$user_id. "', '".$_POST["name1"][$i]."', '".$_POST["name2"][$i]."', '".$cimage."')";
}
}
$sql = $query.$queryValue;
$itemValues;
if($itemValues!=0) {
$result = mysql_query($sql);
if(!empty($result)) $message = "Added Successfully.";
}
Html代码:
<DIV class="product-item float-clear" style="clear:both;">
<table cellspacing="2">
<tr>
<td><DIV class="float-left"><input type="checkbox" name="item_index[]" /></DIV></td>
<td><DIV class="float-left">Heading:<input type="text" name="name1[]" style="width:60px" /></DIV></td>
<td><DIV class="float-left">Content:<textarea type="text" name="name2[]" style="width:90px"/></textarea></DIV></td>
<td>
<DIV><input name="image1[]" id="pro_image" type="file" size="45" /></Div></td>
</DIV>
</tr>
</table>
</body>
帮帮我的朋友.....
您的代码格式不正确。但是可以理解你的问题是什么。请像下面这样尝试。
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files
foreach ($_FILES['image1']['name'] as $f => $name) {
if ($_FILES['image1']['error'][$f] == 0) {
if ($_FILES['image1']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES["image1"]["tmp_name"][$f], $path.$name))
//Write insert query here. image name $_FILES["image1"]["name"][$f]
}
}
}
}
您必须在输入中使用 多个 属性:
<input multiple="multiple" name="image1[]" id="pro_image" type="file" size="45" />
另请参阅: