1
2
3
4
5
|
if
(move_uploaded_file(
$file_name
,
$target_name
))
{
//成功了 其中$file_name 就是上传的$_FILES['tmp_name']临时文件名,,$target_name是你的目标路径
//保存数据库就保存$target_name
}
|
1
2
3
4
|
<
form
action
=
""
method
=
"post"
enctype
=
"multipart/form-data"
>
<
input
type
=
"file"
name
=
"img"
>
……
</
form
>
|
图片接收页面
1
2
3
4
5
6
7
8
9
10
11
12
|
if
(
is_uploaded_file
(
$_FILES
[
'img'
][
'tmp_name'
]))
{
//你可以加上,文件类型,大小等判断
if
(move_uploaded_file(
$_FILES
[
'img'
][
'tmp_name'
],
'你的目标路径'
))
{
//这就算上传成功了
}
else
{
//上传失败了
}
}
|
补全数据库操作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?php
if
(
is_uploaded_file
(
$_FILES
[
'img'
][
'tmp_name'
])){
if
(move_uploaded_file(
$_FILES
[
'img'
][
'tmp_name'
],
$target_name
)){
//这就算上传成功了,插入数据库
if
(!
$link
= mysql_connect(
'mysql_host'
,
'mysql_user'
,
'mysql_password'
)) {
echo
'Could not connect to mysql'
;
exit
;
}
if
(!mysql_select_db(
'mysql_dbname'
,
$link
)) {
echo
'Could not select database'
;
exit
;
}
$sql
=
'insert into table_name(id, img_path) values(img_id, $target_name)'
;
$result
= mysql_query(
$sql
,
$link
);
if
(!
$result
) {
echo
"DB Error, could not create table the database\n"
;
echo
'MySQL Error: '
. mysql_error();
exit
;
}
mysql_free_result(
$result
);
}
else
{
echo
"上传失败"
;
}
}
?>
|
我也来个
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
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
"上传成功,已经插入数据库文件细节(加密)"
;
}
|