Php 警告:移动\u上载的\u文件
可能重复:Php 警告:移动\u上载的\u文件,php,loops,Php,Loops,可能重复: 我又回来了,还在学习多重上传。好吧,我这里有个情况。我得到了两个警告: 警告:move\u uploaded\u file()要求参数1为字符串,数组在第32行的F:\wamp\www\dki\1\entry\u fotos.php中给出 警告:move\u uploaded\u file()要求参数1为字符串,数组在第45行的F:\wamp\www\dki\1\entry\u fotos.php中给出 这就是代码 $ne_photo_images = $_FILES['ne
我又回来了,还在学习多重上传。好吧,我这里有个情况。我得到了两个警告: 警告:move\u uploaded\u file()要求参数1为字符串,数组在第32行的F:\wamp\www\dki\1\entry\u fotos.php中给出 警告:move\u uploaded\u file()要求参数1为字符串,数组在第45行的F:\wamp\www\dki\1\entry\u fotos.php中给出 这就是代码
$ne_photo_images = $_FILES['ne_photo_image']['name'];
$fe_photo_images = $_FILES['fe_photo_image']['name'];
$tmp_file = $_FILES['ne_photo_image']['tmp_name'];
$tmp_file1 = $_FILES['fe_photo_image']['tmp_name'];
if(!is_array($ne_photo_images)) {
$ne_photo_images = array();
}
if(!is_array($tmp_file)) {
$tmp_file = array();
}
if(! move_uploaded_file($tmp_file, 'image/' . $ne_photo_images))
if(!is_array($fe_photo_images)) {
$fe_photo_images = array();
}
if(!is_array($tmp_file1)) {
$tmp_file1 = array();
}
if(! move_uploaded_file($tmp_file1, 'image/' . $fe_photo_images))
我以前从我的问题反馈中得到了这个查询代码
$sql = "INSERT INTO photo(`photo_id`, `ne_photo_image`, `fe_photo_image`, `hop_id`, `title`) VALUES";
for($i = 0, $l = sizeof($titles) ; $i < $l ; $i++)
{
//adding row datas
$sql .= " (null,
'".$ne_photo_images [$i]."',
'".$fe_photo_images [$i]."',
'".$hopid."',
'".$titles[$i]."')";
if($i < $l - 1)
$sql .= ",";
}
if(mysql_query($sql))
{
}
$sql=“插入照片(`photo\u id`、`ne\u photo\u image`、`fe\u photo\u image`、`hop\u id`、`title`)值);
对于($i=0,$l=sizeof($titles);$i<$l;$i++)
{
//添加行数据
$sql.=“(空,
“$ne_photo_images[$i]”,
“$fe_photo_images[$i]”,
“$hopid。”,
“$titles[$i]。”)”;
如果($i<$l-1)
$sql.=“,”;
}
if(mysql_查询($sql))
{
}
这是我的表格:
<form method="post" enctype="multipart/form-data">
<table border="0"cellpadding="0" cellspacing="0" width= "100%">
<tr>
<td>Hop Name :<?echo "$data[hop_name]"?>
<input type='hidden' name='photo_hop_id' value='<?echo"$data[hop_id]"?>'>
</td>
</tr>
<table border="0"cellpadding="0" cellspacing="0" width= "100%">
<tr>
<td cellpadding="0" cellspacing="0" width= "50%">
Near End Site Name : <?echo "$data[ne_site_name]"?>
</br>
Near End Site Id : <?echo "$data[ne_site_code]"?>
</td>
<td cellpadding="0" cellspacing="0" width= "50%">
Far End Site Name : <?echo "$data[fe_site_name]"?>
</br>
Far End Site Id : <?echo "$data[fe_site_code]"?>
</td>
</tr>
<tr>
<td cellpadding="0" cellspacing="0" width= "50%">
<? $pm1= mysql_query("SELECT photo_name FROM photo_name WHERE photo_name_id = 1");
$dpm1 = mysql_fetch_array ($pm1);echo"$dpm1[0]"?>
<input type='hidden' name='photo_name_id[]' value='<?echo"$dpm1[0]"?>'> :
<input type="file" name="ne_photo_image[]">
</td>
<td cellpadding="0" cellspacing="0" width= "50%">
<?echo "$dpm1[0]"?> : <input type="file" name="fe_photo_image[]">
</td>
</tr>
</table>
</table>
<input type="submit" value="tambah" />
</form>
跃点名称:
近端站点Id:
远端站点名称:
远端站点Id:
:
我希望这更容易发现。非常感谢您的帮助这导致了您的问题
if(!is_array($ne_photo_images)) { $ne_photo_images = array(); }
if(!is_array($tmp_file)) { $tmp_file = array(); }
如果$ne_photo_图像不是数组,您可以将其更改为空数组,但您可以更改,对于$tmp_文件也是如此。然后给$tmp_file作为参数来移动上传的文件和$ne_photo_图像,它们只移动一个文件。不是一个文件数组
在此处输入代码
move_上传的文件($tmp_文件,'image/。$ne_照片_图像))
你应该这样做
$ne_photo_images[] = $_FILES['ne_photo_image']['name'];
$ne_photo_images[] = $_FILES['fe_photo_image']['name'];
$tmp_file[] = $_FILES['ne_photo_image']['tmp_name'];
$tmp_file[] = $_FILES['fe_photo_image']['tmp_name'];
然后做一些类似的事情
$allGood = true;
for($i = 0; $i < count($ne_photo_images); $i++)
{
if (!move_uploaded_file($tmp_file[$i], 'image/' . $ne_photo_images[$i]))
{
$allGood = false;
}
}
if (!$allGood) { die("Not all files where moved."); }
这是最终的代码
$hopid = $_POST['photo_hop_id'];
$titles = $_POST['photo_name_id'];
$ne_photo_images = $_FILES[ne_photo_image][name];
$fe_photo_images = $_FILES[fe_photo_image][name];
while(list($key,$value) = each($_FILES['ne_photo_image']['name']))
{
if(!empty($value))
{
$filename = $value;
$filename=str_replace(" ","_",$filename);// Add _ inplace of blank space in file name, you can remove this line
$add = "image/$filename";
//echo $_FILES['images']['type'][$key];
// echo "<br>";
copy($_FILES['ne_photo_image']['tmp_name'][$key], $add);
chmod("$add",0777);
}
}
while(list($key,$value) = each($_FILES['fe_photo_image']['name']))
{
if(!empty($value))
{
$filename = $value;
$filename=str_replace(" ","_",$filename);// Add _ inplace of blank space in file name, you can remove this line
$add = "image/$filename";
//echo $_FILES['images']['type'][$key];
// echo "<br>";
copy($_FILES['fe_photo_image']['tmp_name'][$key], $add);
chmod("$add",0777);
}
}
$sql = "INSERT INTO photo(`photo_id`, `ne_photo_image`, `fe_photo_image`, `hop_id`, `title`) VALUES";
for($i = 0, $l = sizeof($titles) ; $i < $l ; $i++)
{
//adding row datas
$sql .= " (null,
'".$ne_photo_images [$i]."',
'".$fe_photo_images [$i]."',
'".$hopid."',
'".$titles[$i]."')";
if($i < $l - 1)
$sql .= ",";
}
if(mysql_query($sql))
{
}
else
$hopid=$\u POST['photo\u hop\u id'];
$titles=$\u POST['photo\u name\u id'];
$ne_photo_images=$_文件[ne_photo_image][name];
$fe_photo_images=$_文件[fe_photo_images][name];
while(list($key,$value)=每个($_文件['ne\u照片\图像']['name']))
{
如果(!空($value))
{
$filename=$value;
$filename=str_replace(“,”,$filename);//添加u在文件名中的空白处,可以删除此行
$add=“image/$filename”;
//echo$_文件['images']['type'][$key];
//回声“
”;
复制($\文件['ne\ U照片\图像']['tmp\ U名称][$key],$add);
chmod(“$add”,0777);
}
}
while(list($key,$value)=每个($_文件['fe\u照片\图像']['name']))
{
如果(!空($value))
{
$filename=$value;
$filename=str_replace(“,”,$filename);//添加u在文件名中的空白处,可以删除此行
$add=“image/$filename”;
//echo$_文件['images']['type'][$key];
//回声“
”;
复制($\文件['fe\ U照片\图像]['tmp\ U名称][$key],$add);
chmod(“$add”,0777);
}
}
$sql=“插入照片(`photo\u id`、`ne\u photo\u image`、`fe\u photo\u image`、`hop\u id`、`title`)值);
对于($i=0,$l=sizeof($titles);$i<$l;$i++)
{
//添加行数据
$sql.=“(空,
“$ne_photo_images[$i]”,
“$fe_photo_images[$i]”,
“$hopid。”,
“$titles[$i]。”)”;
如果($i<$l-1)
$sql.=“,”;
}
if(mysql_查询($sql))
{
}
其他的
回显var\u dump($ne\u photo\u图像);var_dump($fe_photo_images);执行前的结果为:数组(大小=0)空数组(大小=0)空选择变量转储($ne\u photo\u images);var_dump($fe_photo_images);结果是:array(size=1)0=>string'Lighthouse.jpg'(length=14)现在我可以完成了,也许这可以成为新手的好导师,如果用两步上传的文件来完成,我应该做两次吗?你不必做两次。循环已经处理了放入数组中的所有文件。你查看了所有上传的文件,并将其移动到所有位置。我发现:并非所有文件都移动到了位置。我真的很困惑你到底要上传多少文件21个用于ne图像,21个用于fe图像总共42个文件
$hopid = $_POST['photo_hop_id'];
$titles = $_POST['photo_name_id'];
$ne_photo_images = $_FILES[ne_photo_image][name];
$fe_photo_images = $_FILES[fe_photo_image][name];
while(list($key,$value) = each($_FILES['ne_photo_image']['name']))
{
if(!empty($value))
{
$filename = $value;
$filename=str_replace(" ","_",$filename);// Add _ inplace of blank space in file name, you can remove this line
$add = "image/$filename";
//echo $_FILES['images']['type'][$key];
// echo "<br>";
copy($_FILES['ne_photo_image']['tmp_name'][$key], $add);
chmod("$add",0777);
}
}
while(list($key,$value) = each($_FILES['fe_photo_image']['name']))
{
if(!empty($value))
{
$filename = $value;
$filename=str_replace(" ","_",$filename);// Add _ inplace of blank space in file name, you can remove this line
$add = "image/$filename";
//echo $_FILES['images']['type'][$key];
// echo "<br>";
copy($_FILES['fe_photo_image']['tmp_name'][$key], $add);
chmod("$add",0777);
}
}
$sql = "INSERT INTO photo(`photo_id`, `ne_photo_image`, `fe_photo_image`, `hop_id`, `title`) VALUES";
for($i = 0, $l = sizeof($titles) ; $i < $l ; $i++)
{
//adding row datas
$sql .= " (null,
'".$ne_photo_images [$i]."',
'".$fe_photo_images [$i]."',
'".$hopid."',
'".$titles[$i]."')";
if($i < $l - 1)
$sql .= ",";
}
if(mysql_query($sql))
{
}
else