你这样写又报错了Warning: copy(./site_data/PHP对数据库的操作.txt) [function.copy]: failed to open stream: No such file or directory in D:\APMServ5.2.6\www\htdocs\shangchuan.php on line 52 就是这句copy($upload_bak.$file['name'], $upload_bak.$file['name'].'_'.$bakfilename);
$fileName = "E:/site_data/".'/'.date('Ymd').'/'.time().rand(100,999).$ext;
那么就不需要而外指明路径了
move_uploaded_file(@$_FILES['upload_file']['tmp_name'], $fileName);
$fileName你又给"E:\site_data/".'/'.date('Ymd').'/'.time().rand(100,999).$ext;传值了两个构造在一起,肯定是不存在的路径了.$fileName = date('Ymd').'/'.time().rand(100,999).$ext;
move_uploaded_file(@$_FILES['upload_file']['tmp_name'],$_SERVER['DOCUMENT_ROOT'].'/'.$fileName);
@copy($_SERVER['DOCUMENT_ROOT'].'/'.$fileName, "E:\site_data/".'/'.$fileName);
$ext = '.txt';
if(strrpos(@$_FILES['upload_file']['name'],'.') !== false){
$ext = substr( @$_FILES['upload_file']['name'], strrpos(@$_FILES['upload_file']['name'], '.' ));
}
if(strtolower($ext) != '.txt'
&& strtolower($ext) != '.jpg'
&& strtolower($ext) != '.gif'
&& strtolower($ext) != '.htm'
&& strtolower($ext) != '.doc'){
echo '上传的文件类型不符合要求';
exit;
}//$fileName = "E:\site_data/".'/'.date('Ymd').'/'.time().rand(100,999).$ext;
//move_uploaded_file(@$_FILES['upload_file']['tmp_name'],$fileName);
$fileName = date('Ymd').'/'.time().rand(100,999).$ext;
move_uploaded_file(@$_FILES['upload_file']['tmp_name'],$_SERVER['DOCUMENT_ROOT'].'/'.$fileName);//就是这行
@copy($_SERVER['DOCUMENT_ROOT'].'/'.$fileName, "E:\site_data/".'/'.$fileName);我想让上传文件保存到E:\site_data/中
$fileName = "E:/site_data/".date('Ymd').'/'.time().rand(100,999).$ext;
你需要保证相应的目录存在并可写
比如今天
E:/site_data/20100730
明天
E:/site_data/20100731
$fileName = "E:\site_data/".'/'.date('Ymd').'/'.time().rand(100,999).$ext;
//move_uploaded_file(@$_FILES['upload_file']['tmp_name'],$fileName);
//$fileName = date('Ymd').'/'.time().rand(100,999).$ext;
move_uploaded_file(@$_FILES['upload_file']['tmp_name'],$fileName);
@copy($_SERVER['DOCUMENT_ROOT'].'/'.$fileName, "E:\site_data/".'/'.$fileName);
感谢大侠们赐教
$fileName = date('Ymd').'/'.time().rand(100,999).$ext;
$base_folder = "E:/site_data/";
move_uploaded_file(@$_FILES['upload_file']['tmp_name'],$base_folder.$fileName);
?>
人家已经写的很清楚了,\在php里是转义,就算你要用在路径上,至少也要加两个吧
$ext = '.txt';
if(strrpos(@$_FILES['upload_file']['name'],'.') !== false){
$ext = substr( @$_FILES['upload_file']['name'], strrpos(@$_FILES['upload_file']['name'], '.' ));
}
if(strtolower($ext) != '.txt'
&& strtolower($ext) != '.jpg'
&& strtolower($ext) != '.gif'
&& strtolower($ext) != '.htm'
&& strtolower($ext) != '.doc'){
echo '上传的文件类型不符合要求';
exit;
}
$fileName = date('Ymd').'/'.time().rand(100,999).$ext;
$base_folder = "E:/site_data/";
if(move_uploaded_file(@$_FILES['upload_file']['tmp_name'],$base_folder.$fileName)){
echo "成功";}
$upload_dir=="./site_data/";
$upload_bak="./site_data/";$file=$_FILES['upload'];$ext = explode(".",$file['name']);
$ext = $ext[count($ext)-1];
$filename1 = substr($file['name'],0,(strlen($file['name'])-strlen($ext)-1));
$bakfilename = "{$username}_{$uid}_".date("Y_m_d_H_i_s").".{$ext}";
if(move_uploaded_file($file['tmp_name'],$upload_bak.$file['name'])){
copy($upload_bak.$file['name'], $upload_bak.$bakfilename);
}
$upload_bak="./site_data/";
//你至少要对$username赋予值.
$username = $_POST['username'];//提交过来的名字
//或者$username = $_COOKIE['username'];//cookie里的名字
$file=$_FILES['upload'];$ext = explode(".",$file['name']);
$ext = $ext[count($ext)-1];
$filename1 = substr($file['name'],0,(strlen($file['name'])-strlen($ext)-1));
$bakfilename = "{$username}_".date("Y_m_d_H_i_s").".{$ext}";
if(move_uploaded_file($file['tmp_name'],$upload_bak.$file['name'])){
copy($upload_bak.$file['name'], $upload_bak.$bakfilename);
}
$upload_dir=="./bak_data/";
$upload_bak="./site_data/";$file=$_FILES['upload'];
$username=$_POST['upname'];
$ext = explode(".",$file['name']);
$ext = $ext[count($ext)-1];
$filename1 = substr($file['name'],0,(strlen($file['name'])-strlen($ext)-1));
$bakfilename = "{$username}_{$uid}_".date("Y_m_d_H_i_s").".{$ext}";
if(move_uploaded_file($file['tmp_name'],$upload_bak.$file['name'])){
copy($upload_bak.$file['name'], $upload_bak.$bakfilename);
echo "上传成功";
}
多么的怪异啊 绝对路径前加其他东西???
还有
if(move_uploaded_file($file['tmp_name'],$upload_bak.$file['name'])){
copy($upload_bak.$file['name'], $upload_bak.$bakfilename);
echo "上传成功";
}
这什么意思啊,if已经将文件转移了,下面的copy多此一举
你看看下面那个应该是什么呢,根本看不出来
$upload_dir="./bak_data/";
$upload_bak="./site_data/";$file=$_FILES['upload'];
$username=$_POST['upname'];
$ext = explode(".",$file['name']);
$ext = $ext[count($ext)-1];
$filename1 = substr($file['name'],0,(strlen($file['name'])-strlen($ext)-1));
$bakfilename = "{$username}_{$uid}_".date("Y_m_d_H_i_s").".{$ext}";
if(move_uploaded_file($file['tmp_name'],$upload_bak.$file['name'].'_'.$bakfilename)){
echo "上传成功";
}
分析下:
$upload_bak.$file['name'].'_'.$bakfilename其中$upload_bak等于"./site_data/"
其中$file['name']等于"abc"
其中$bakfilename等于 "$username_$uid_".date("Y_m_d_H_i_s").".$ext"最终等于"./site_data/abc_username_uid_time.txt"
$upload_bak="./site_data/";$file=$_FILES['upload'];
$username=$_POST['upname'];
$ext = explode(".",$file['name']);
$ext = $ext[count($ext)-1];
$filename1 = substr($file['name'],0,(strlen($file['name'])-strlen($ext)-1));
$bakfilename = "{$username}_{$uid}_".date("Y_m_d_H_i_s").".{$ext}";
if(move_uploaded_file($file['tmp_name'],$upload_dir.$file['name'])){
copy($upload_bak.$file['name'], $upload_bak.$file['name'].'_'.$bakfilename);
echo "上传成功";
}
就是这句copy($upload_bak.$file['name'], $upload_bak.$file['name'].'_'.$bakfilename);
$filename1 = substr($file['name'],0,(strlen($file['name'])-strlen($ext)-1));
$bakfilename = $filename1."_{$uid}_{$username}_".date("Y_m_d_H_i_s").".{$ext}";
if(move_uploaded_file($file['tmp_name'],$upload_bak.$file['name'])){
copy($upload_bak.$file['name'], $upload_bak.$bakfilename);
echo "上传成功";