关于php控制上传文件目录的问题

这个是我写的关于上传的文件,目前实现的是上传后在当前目录下建立一个文件夹file然后再在里面建立了一个文件夹名字是上传文件名字+类型的组合,里面文件的名字是从1排序的效果... 这个是我写的关于上传的文件,目前实现的是上传后在当前目录下建立一个文件夹file然后再在里面建立了一个文件夹名字是上传文件名字+类型的组合,里面文件的名字是从1排序的效果,我想实现的是上传后在file里建立的文件夹名字是用户的名字,然后里面的文件时用户的网站的名字+数字1开始排序的组合。 用户名和网站名在session里分别是$_SESSION["name"]和$_SESSION["T1_wsname"]。拜托高手了。。
<?php
include "../conn.php";
$file_size_max = 300000;
function getname($exname)
{
$dir = "file/".$_FILES['upfile']['name']."/";
$i=1;
if(!is_dir($dir)){
mkdir($dir,0777);
}

while(true){
if(!is_file($dir.$i.".".$exname)){
$name=$i.".".$exname;
break;
}
$i++;
}

return $dir.$name;
}
function getname2($exname2)
{
$dir2 = "file/".$_FILES['upfile2']['name']."/";
$j=1;
if(!is_dir($dir2)){
mkdir($dir2,0777);
}

while(true){
if(!is_file($dir2.$j.".".$exname2)){
$name2=$j.".".$exname2;
break;
}
$j++;
}

return $dir2.$name2;
}
function getname3($exname3)
{
$dir3 = "file/".$_FILES['upfile3']['name']."/";
$k=1;
if(!is_dir($dir3)){
mkdir($dir3,0777);
}

while(true){
if(!is_file($dir3.$k.".".$exname3)){
$name3=$k.".".$exname3;
break;
}
$k++;
}

return $dir3.$name3;
}

$exname=strtolower(substr($_FILES['upfile']['name'],(strrpos($_FILES['upfile']['name'],'.')+1)));
$exname2=strtolower(substr($_FILES['upfile2']['name'],(strrpos($_FILES['upfile2']['name'],'.')+1)));
$exname3=strtolower(substr($_FILES['upfile3']['name'],(strrpos($_FILES['upfile3']['name'],'.')+1)));

if($_FILES['upfile']['size']>$file_size_max)
{
echo "<script>alert('文件太大');location='up.php';</script>";
break;
}
if($_FILES['upfile2']['size']>$file_size_max)
{
echo "<script>alert('文件太大');location='up.php';</script>";
break;
}
if($_FILES['upfile3']['size']>$file_size_max)
{
echo "<script>alert('文件太大');location='up.php';</script>";
break;
}

$uploadfile = getname($exname);
$uploadfile2 = getname2($exname2);
$uploadfile3 = getname3($exname3);

move_uploaded_file($_FILES['upfile']['tmp_name'], $uploadfile);
move_uploaded_file($_FILES['upfile2']['tmp_name'], $uploadfile2);
move_uploaded_file($_FILES['upfile3']['tmp_name'], $uploadfile3);

if(trim($_FILES['upfile']['name']!="")&&trim($_FILES['upfile2']['name']!="")&&trim($_FILES['upfile3']['name']!=""))
{
$uploadfile="/file/".$uploadfile;
$uploadfile2="/file/".$uploadfile2;
$uploadfile3="/file/".$uploadfile3;
echo "<script>alert('上传成功');location='../main.php';</script>";
}
else
{
$uploadfile="";
$uploadfile2="";
$uploadfile3="";
}
echo "<script>alert('上传错误');location='up.php';</script>";
?>
展开
 我来答
xudianyang
2010-06-16 · TA获得超过410个赞
知道小有建树答主
回答量:87
采纳率:0%
帮助的人:123万
展开全部
你直接在move_uploaded_file(临时文件,新文件名)
函数的第二个参数加上路径就Ok!

如:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>单文件上传</title>
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
body {
margin-left: 10px;
margin-top: 10px;
margin-right: 10px;
margin-bottom: 10px;
}
-->
</style></head>
<body>
<form action="" method="post" enctype="multipart/form-data" name="form">
<input name="up_file" type="file" />
<input type="submit" name="submit" value="上传" />
</form>
<?php
if(file_exists("temp")){
}else{
mkdir("temp");
}
if(!empty($_FILES['up_file']['name'])){
$fileinfo = $_FILES['up_file'];
if($fileinfo['size'] < 1000000 && $fileinfo['size'] > 0){
move_uploaded_file($fileinfo['tmp_name'],"temp/".$fileinfo['name']);
echo '上传成功';
}else{
echo '文件太大或未知';
}
}
?>
</body>
</html>

我在程序中新建一个目录,然后将上传的文件保存到相应的目录了!

祝你成功!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式