这是asp的文件(是vbscript语言),你自己改成php试试看for each formName in upload.objFile '列出所有上传了的文件 formPath="" set file=upload.file(formName) ''生成一个文件对象 if file.filename<>"" then if file.fileSize<=0 and file.FileSize>500000 then response.Write("<script>alert ('对不起,上传的文件大小不符');history.go(-1)</script>") response.End else file.FileName=trim(file.FileName) Up_File_Ext=right(file.FileName,len(file.FileName)-InStrRev(file.FileName,".")) new_file_name=now_date_array(0)+"_"+makePassword(10)+"."+Up_File_Ext 'response.write new_file_name&"<br>" 'response.End() if LCase(Up_File_Ext) = "gif" or LCase(Up_File_Ext)="jpeg" or LCase(Up_File_Ext)="jpg" then file.SaveAs Server.mappath(formPath&new_file_name) ''保存文件 Info_photo(i)=new_file_name
else response.Write("<script>alert ('上传的文件类型不对!请重新上传');history.go(-1)</script>") response.End end if i=i+1 end if end if next
{
$tmp = "photo_file$i";
$photo_file=$$tmp;
$srcfile=$photo_file_name;
}
{
$photo_file=$photo_fle.$i;
$srcfile=$photo_file_name;
}
$srcfile=$photo_file_name;这句是什么?$photo_file_name在什么地方初始化的?
改为 $srcfile = $photo_file['name']试试
但现在我想设计一个同时上传10个图片的上传程序.那么这10个上传的文件名应该是
$srcfile=$photo_file1_name;
$srcfile=$photo_file2_name;
$srcfile=$photo_file3_name;
$srcfile=$photo_file4_name;
...在循环中写作(设$i为循环变量)
$srcfile=${"photo_file$i_name"};其他类推
<?
if(isset($submit))
{
for($i=1;$i<=10;$i++)
{
$srcfile=${"photo_file$i_name"};
//$tmp=$photo_file.$i;
//$photo_file=$$tmp;
//$srcfile=$photo_file_name;
$filebase=basename($srcfile);
}
echo $filebase;
exit;
?>
formPath=""
set file=upload.file(formName) ''生成一个文件对象
if file.filename<>"" then
if file.fileSize<=0 and file.FileSize>500000 then
response.Write("<script>alert ('对不起,上传的文件大小不符');history.go(-1)</script>")
response.End
else
file.FileName=trim(file.FileName)
Up_File_Ext=right(file.FileName,len(file.FileName)-InStrRev(file.FileName,"."))
new_file_name=now_date_array(0)+"_"+makePassword(10)+"."+Up_File_Ext
'response.write new_file_name&"<br>"
'response.End()
if LCase(Up_File_Ext) = "gif" or LCase(Up_File_Ext)="jpeg" or LCase(Up_File_Ext)="jpg" then
file.SaveAs Server.mappath(formPath&new_file_name) ''保存文件
Info_photo(i)=new_file_name
else
response.Write("<script>alert ('上传的文件类型不对!请重新上传');history.go(-1)</script>")
response.End
end if
i=i+1
end if
end if
next
我现在就是在取上传文件路径取不到.要是单单上传一个可以,以前我是把程序重复写5次(同时上传5个).但这方法确实太笨了,所以现在想用循环写.
是不是没有人这样做过?
$photo_file=${"photo_file".$i};
$srcfile=$photo_file_name;$photo_file就等于:
C:\DOCUME~1\amos\LOCALS~1\Temp\php283.tmp,照理应该对.因为不用循环$photo_file1也等于:
C:\DOCUME~1\amos\LOCALS~1\Temp\php292.tmp但echo $srcfile;就是空的.不用循环就正常显示:001.jpg
这样写
$srcfile=${"photo_file{$i}_name"};测试代码
<?php
$photo_file1_name = 'test';
$i = 1;
echo $srcfile=${"photo_file{$i}_name"};
?>
for($i=0;$i<=18;$i++){
if(@copy($HTTP_POST_FILES['a']['tmp_name'][$i],$HTTP_POST_FILES['a']['name'][$i]))$j++;
}
echo "上传成功 $j 个文件";