十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
必须用上传控件,数据库里的是虚拟路径,文件必须物理上存在的。
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了周至免费建站欢迎大家使用!
string
size
=
fileupload1.postedfile.contentlength.tostring();
double
imagesize
=
math.round(float.parse(size)
/
1024,
1);
if
(imagesize
150)
{
m.show("你上传的图片大小为:"
+
imagesize.tostring()
+
"kb\\n\\n已超范围规定的150kb了");
return;
}
string
name
=
fileupload1.filename;
string
type
=
name.substring(name.lastindexof(".")
+
1).tolower();
system.guid
guid
=
system.guid.newguid();
string
vsnewname
=
guid.tostring();//声称文件名,防止重复
fileupload1.saveas(httpcontext.current.server.mappath("~/file/"
+
vsnewname
+
"."
+
type));
string
path
=
"~/file/"
+
vsnewname
+
"."
+
type;
两种方法:
一:将图片上传至指定目录,在数据库中保存文件名和文件路径。
二:将图片文件读入字符串,将字符串保存到数据库,不推荐(没那么长的字段长度支持)。
define(UPLOAD_ROOT,'你的上传文件夹路径');
function fake_random_name($string,$key){
#伪代码 随便根据用户名和上传时间生成一个伪随机的文件名作为上传以后的用户名
#但解码的条件是可以根据文件名判断出文件所有者的用户名和上传时间
#需要从数据库取出用户的密匙 才能进行解密 密匙是用户名的前5个字符
#具体加密解密的代码实现 请参照PHP标准扩展库 Mcrypt扩展下的N种方法
return $fake_random_name;
}
if(!is_writbale(UPLOAD_ROOT)){
die('you need chown the dir for your uploading file,make it writable~');
}else{
move_uploaded_file($_FILES['POST过来的表单名']['tmp_name'];
/*
* 这个方法会自动调用is_upload_file()方法 检测是否是合法的http rfc1867协议上传的文件
* 当然了 你也可以限制是否是你需要的合法文件类型 $_FILE[$_POST[name]][type] 比如是否是pdf img文件 都可以
*/
$dbh = new mysqli('localhost','root','sa','your_db_name');#生成中可以include进来 DSN放到根目录以外去 保护连接文件
$sec_key = substr($_SESSION['loginname'],0,5);
#密匙
$file_name = fake_random_name($_FILES['POST过来的表单名']['tmp_name'],$sec_key);
#加密后的名字
$q_str = "insert into tb(owner,location)values($_SEESION['loginname'],UPLOAD_ROOT.DIRECTORYSLASH.$file_name))";/SQL
$dbh-query($q_str);
if($dbh-num_rows()==1) echo "上传成功,已经插入数据库文件细节(加密)";
}