高分求高手来看看上传问题

haihao_110 2010-07-30 09:36:20
我想上传文件时在备份一个文件 备份的文件名为上传文件名+上传人姓名+上传时间 ,
都不是汉字啊这是我的代码高手们帮帮看看,为什么报错
<form enctype="multipart/form-data" action="" method="post">
<table width="400" border="0" cellspacing="1" cellpadding="1" align="center" bgcolor="#E6E6E6" >
<tr>
<td height="22" align="center" valign="middle" bgcolor="#F5F5F5" width="400"> 文件上传 </td>
</tr>
<tr align="center" valign="middle">
<td align="center" height="80" width="400" bgcolor="#FFFFFF">
选择文件:<input type="file" name="upload_file" style="width:300">
</td>
</tr>
<tr align="center" valign="middle">
<td bgcolor="#F5F5F5" height="24" width="400">
<div align="center">
<input type="submit" value="开始上传">
</div></td>
</tr>
</table>
</form>

//$uploadFileName = $_POST['test'];
$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) != '.png'
&& strtolower($ext) != '.doc'){
echo '上传的文件类型不符合要求';
exit;
}

$fileName = "E:\site_data/".'/'.date('Ymd').'/'.time().rand(100,999).$ext;
move_uploaded_file(@$_FILES['upload_file']['tmp_name'],$_SERVER['DOCUMENT_ROOT'].'/'.$fileName);//这行报错
//
//$uploadfile="E:\site_data/".$_FILES['upload_file']['name'];
//if(move_uploaded_file($_FILES['upload_file']['tmp_name'],$uploadfile)){
//echo "成功";}

'D:/APMServ5.2.6/www/htdocs/E:\site_data//20100730/1280453764180.txt' in D:\APMServ5.2.6\www\htdocs\shangchuan.php on line 36
怎么改啊!!!!
...全文
182 31 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dleno 2010-07-30
  • 打赏
  • 举报
回复
$upload_dir=="./site_data/";
$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);
}
Alfredknox 2010-07-30
  • 打赏
  • 举报
回复
帮顶,接分。。。
haihao_110 2010-07-30
  • 打赏
  • 举报
回复
上传成功了 但是备份文件的文件名没有上传人的名字 只有时间 大侠们帮我看看吧
$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);
}
haihao_110 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cunningboy 的回复:]
PHP code
<?php
$fileName = date('Ymd').'/'.time().rand(100,999).$ext;
$base_folder = "E:/site_data/";
move_uploaded_file(@$_FILES['upload_file']['tmp_name'],$base_folder.$fileName);
?>

……
[/Quote]
我之前也这样写过但是也是没有效果
$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 "成功";}
r3r4r8 2010-07-30
  • 打赏
  • 举报
回复
*o*路过*o*有分给点分,无分积10分
CunningBoy 2010-07-30
  • 打赏
  • 举报
回复
<?php
$fileName = date('Ymd').'/'.time().rand(100,999).$ext;
$base_folder = "E:/site_data/";
move_uploaded_file(@$_FILES['upload_file']['tmp_name'],$base_folder.$fileName);
?>

jianglin28290 2010-07-30
  • 打赏
  • 举报
回复
$fileName = "E:/site_data/".'/'.date('Ymd').'/'.time().rand(100,999).$ext;
人家已经写的很清楚了,\在php里是转义,就算你要用在路径上,至少也要加两个吧
haihao_110 2010-07-30
  • 打赏
  • 举报
回复
感谢楼上的提示但是我改过后 不报错 但是上传文件后在 E:\site_data/文件夹中没有我上传的文件
$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);

感谢大侠们赐教
xuzuning 2010-07-30
  • 打赏
  • 举报
回复
你是越改越乱了!
$fileName = "E:/site_data/".date('Ymd').'/'.time().rand(100,999).$ext;
你需要保证相应的目录存在并可写
比如今天
E:/site_data/20100730
明天
E:/site_data/20100731


haihao_110 2010-07-30
  • 打赏
  • 举报
回复
谢谢大家 但还是报错说failed to open stream: No such file or directory in D:\APMServ5.2.6\www\htdocs\shangchuan.php on line 38

//$uploadFileName = $_POST['test'];
$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/中
程序猿之殇 2010-07-30
  • 打赏
  • 举报
回复
$_SERVER['DOCUMENT_ROOT'] = 'D:/APMServ5.2.6/www/htdocs
$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);
xuzuning 2010-07-30
  • 打赏
  • 举报
回复
既然你有
$fileName = "E:/site_data/".'/'.date('Ymd').'/'.time().rand(100,999).$ext;
那么就不需要而外指明路径了
move_uploaded_file(@$_FILES['upload_file']['tmp_name'], $fileName);
haihao_110 2010-07-30
  • 打赏
  • 举报
回复
这是最后调好的
$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 "上传成功";
kyzy_yy_pm 2010-07-30
  • 打赏
  • 举报
回复
说说怎么回事
haihao_110 2010-07-30
  • 打赏
  • 举报
回复
你这样写还是报错 ,不过谢谢你,问题我已经解决了,结贴给分了
kyzy_yy_pm 2010-07-30
  • 打赏
  • 举报
回复
copy($upload_dir.$file['name'], $upload_dir.$file['name'].'_'.$bakfilename);

失误,楼主改下
haihao_110 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 kyzy_yy_pm 的回复:]
PHP code
$upload_dir="./bak_data/";
$upload_bak="./site_data/";

$file=$_FILES['upload'];
$username=$_POST['upname'];


$ext = explode(".",$file['name']);
$ext = $ext[count($ext)-1];
$file……
[/Quote]
你这样写又报错了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);
kyzy_yy_pm 2010-07-30
  • 打赏
  • 举报
回复
按楼主的想法的话$upload_bak根本没用,迷惑人
kyzy_yy_pm 2010-07-30
  • 打赏
  • 举报
回复
copy($upload_bak.$file['name'], $upload_dir.$file['name'].'_'.$bakfilename);
kyzy_yy_pm 2010-07-30
  • 打赏
  • 举报
回复
$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_dir.$file['name'])){
copy($upload_bak.$file['name'], $upload_bak.$file['name'].'_'.$bakfilename);
echo "上传成功";
}

加载更多回复(11)
Zoomla!逐浪CMS2简介 春光万里,无限美好,正是复兴大时代! 不到两个月,Zoomla!逐浪CMS官方团队发布其年度版本:Zoomla!逐浪CMS2 3.9.4 在这一版中,我们如约而致的带来了全新的Flexbox布局站点,这是面向AI智能计算、以移动优先、以高分屏率时优化(目前国内传统用户还不能完全理解并接受-我们没法想象Google官方手机早在五年前就是2k,而国产手机一直在低端模仿中徘徊),以及面向移动的优化。 如同每年的惯例,Zoomla!逐浪CMS都会业界首发新品,引领2018中国CMS软件行业的发展。 这一版中,我们再次强强推进,勇敢进军 今天这个互联网,AI、物联网、车联网、神经网络层出不穷,但是基于WEB表现的核心技术依然是HTML技术,其背后依赖的内核是CMS中间件,Zoomla!逐浪CMS作为国内第一阵营的领导品牌,坚持推陈出新,推动国内WEB与移动互联网技术的成长。 今天这个互联网,技术层出不穷,新思维暗流涌动。 传统网页基于一行一行的HTML构成,可早已进化到以Emmet简写展开,1码10行(甚至更多)的境界。 传统网页基于原生CSS呈现,高手已经在基于sass和less进行编程化样式编译。 传统网站多用ps做图展示,前沿的逐浪CMS已经早早的引入svg矢量画图技术。 传统网站图标多基于JPG/PNG/GIF等点阵图呈现,而基于Webfont的字库技术大大推进了展现领域。 你所熟悉的网页结构,已被React、AngulaJS等新web技术使传统网页开发面貌大大提升。 以及基于Git、PowerApp、混合现实、AR、MR技术,正是:一日千里,始于基石。 这都在全新的Zoomla!逐浪CMS2 x3.9.3中得到了淋漓尽致的体现,作为成熟的CMS软件厂商,我们从不只为标新立异、哗众取宠,而是既关注全新技术,又适时的引入成熟的商业技术;既保留对旧版本的兼容,同时又在底层上追进步,从而保证商业级的CMS和生产力软件研发平台定位的技术先进性。 科学技术是第一生产力。Zoomla!逐浪CMS用技术推进研发。 Zoomla!逐浪CMS2 x3.9.6 更新日志   1、增加:若干个内置标签,调用更方便 2、升级:Bootstrap升级到v4.1 3、增加:MarkDown解释CSS样式于V4模板SASS中,从而支持更加友好的显示代码区域。 4、增加:专题数据源标签 5、升级:zico升级到v1.5,增加医疗行业图标。 6、修复:内容列表--如节点未允许内容页生成,则不会显示生成按钮 7、改进:内容发布过渡页效果 8、修复:内容列表--生成Html BUG,生成发布时,过滤未审核内容 9、增加:通用排序页,已用于模型字段,内容,商品(支持拖动排序) 10、优化:引入BootStrap多选框,用于替代checkbox 11、新增:svg工具,支持面向base64\svg\png\WebP等格式生成 12、新增:后台-模型-字段可以选择类型,更改字段类型后,注意出现内容不符出现的灾难。 13、扩展:SVG工具,增加webp转jpg功能 14、处理:重写智写模块 15、增加:手机端专用编辑器,已用于贴吧(支持文字|表情|图片上传) 16、优化:扩展-备份还原数据UI体验,支持目录从根显示 17、增加:标签解析调试模块,用于分析标签解析效率 18、扩展:内容评论使用新编辑器,支持图片上传 19、扩展:标签管理,增加创建与修改时间(文件创建与修改时间) 20、扩展:按需修改BIS平台 21、修复:节点移除入回收站,列表中仍可见Bug 22、修复:内容ItemID为记录错误Bug 23、扩展:修复判断模式Bug,并支持多种赋值,从而提升标签的判断能力 24、增加:广告-智能Banner模块,用于站点Banner后台管理 24.1.扩展功能--广告管理--Banner管理 24.2.上传图片,指定各种参数 24.3.按规范书写前端UI 25、增加:小程序相关接口,小程序文件上传接口 26、修复:内容评论模块Bug 27、修复:专题分页Bug 28、修复:试卷添加问题与样式Bug 29、增加:默认pwa渐进式站点配置参数,即webapp开发支持,现在可以自由的将网页作为app锁定在手机桌面并作为独立线程运行啦。 30、优化:首页引导1/5导航页的样式优化。 31、增加:前端引用pre标签作为代码块时的样式。 32、增加:编辑器支持hidden隐藏元素,隐藏方法为在div\p\img\video等元素定义hidden,如: 33、增加:手机|微信下仿朋友圈多图片预览插件,并简化调用形式 34、修复:专题预览BUG。 35、增加:html-->PDF,HTML-->图片转换模块(需要额外载入第三方支持类库) 36、扩展:重写了微信--菜单配置功能,支持自定义填写URL|关联节点|关联内容|关联逐浪后台调查问卷,更加敏捷便利。 37、优化:会员中心修改密码等处的样式,摒弃表格用纯div格式 38、强化:统一访问归集功能,同时支持移动微信PC跳转以及域名归集。 39、增加:全站首页.html模板增加[ERR:未定义的系统标签( PWAMainfirst)请检查标签名是否正确]标签,更紧密集成PWA参数(此模式下站点PC模式的ico不再读根目录favicon.ico,而是由 标签决定),更多可见hep.z01.com/pwa) 40、扩展:标签管理--排序支持拖动参数,标签支持排序参数,效率提升三倍。 41、扩展:商品管理--包含子节点的商品 42、扩展:互动模型-支持订制报表字段、自定义自段排序,从而使互动报表更加方便,轻松做报表给老板看! 43、优化:订单结算-微信支付页面效果 44、扩展:增加订单管理员提示功能 45、增加:重写了短信SMS模块框架,便于快速接入新短信API 46、增加:腾迅短信模块 47、增加:商城专题功能 48、增加:手机与PC多文件上传组件 49、扩展:商城支持批量添加至专题 50、修复:专题标示名空格Bug,继承父级属性Bug,标签解析Bug 51、增加:前端二维码生成插件 52、扩展:内容,互动模块迁移为MVC 53、扩展:增加排序JS插件 54、安全:增强了文件写入模块检测 55、安全:增强管理员身份验证,全加密传输,存储 56、安全:后台风格管理,模板管理,模块优化 57、安全:文件创建,写入增强检测 58、修复:省市县地址维护工具 59、扩展:ascx通用引用功能 60、增加:Repeater的BootStrap分页,ZL:RepeaterMB 61、优化:购物车与订单结算页UI 62、修复:商品评论功能 63、安全:移除旧版的swf文件 64、优化:短信发送页面样式 65、增加:宽乐短信接口 66、优化:重写了后端书签插件 67、修复:节点批量删除功能 68、其它细节优化与内核提升   Zoomla!逐浪CMS2前台截图 Zoomla!逐浪CMS2后台截图 相关阅读 同类推荐:CMS

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧