<?php
$upload_file=$_FILES['upload_file']['tmp_name'];
$upload_file_name=$_FILES['upload_file']['name'];
$store_dir = "/data1/test/UploadFile/";// store path
if(!is_dir($store_dir)){
echo "Create";
mkdir($store_dir,0777);
}
else{
echo "Existed";
}
echo "<p>The uploaded file name:";
echo $_FILES['upload_file']['name'];
echo "<br>";
//client orinigal file name。
echo "MIME Type :";
echo $_FILES['upload_file']['type'];
//MIME Type。
echo "<br>";
echo "FileSize:";
echo $_FILES['upload_file']['size'];
echo "<br>";
echo "Temp Name:";
echo $_FILES['upload_file']['tmp_name'];
echo "<br>";$Erroe=$_FILES['upload_file']['error'];
switch($Erroe){
case 0:
Echo "Success"; break;
case 1:
Echo "More than upload_max_filesize"; break;
case 2:
Echo "More than HTML MAX_FILE_SIZE "; break;
case 3:
Echo "Upload part";break;
case 4:
Echo "Failed";break;
}
?>
以上就是我写的代码,但是很奇怪的是老是上传不了,我看看发现$_FILES['upload_file']['tmp_name']这个的值都是为空?不知道是什么原因,本人刚开始学习php。着急中,谢谢。
$upload_file=$_FILES['upload_file']['tmp_name'];
$upload_file_name=$_FILES['upload_file']['name'];
$store_dir = "/data1/test/UploadFile/";// store path
if(!is_dir($store_dir)){
echo "Create";
mkdir($store_dir,0777);
}
else{
echo "Existed";
}
echo "<p>The uploaded file name:";
echo $_FILES['upload_file']['name'];
echo "<br>";
//client orinigal file name。
echo "MIME Type :";
echo $_FILES['upload_file']['type'];
//MIME Type。
echo "<br>";
echo "FileSize:";
echo $_FILES['upload_file']['size'];
echo "<br>";
echo "Temp Name:";
echo $_FILES['upload_file']['tmp_name'];
echo "<br>";$Erroe=$_FILES['upload_file']['error'];
switch($Erroe){
case 0:
Echo "Success"; break;
case 1:
Echo "More than upload_max_filesize"; break;
case 2:
Echo "More than HTML MAX_FILE_SIZE "; break;
case 3:
Echo "Upload part";break;
case 4:
Echo "Failed";break;
}
?>
以上就是我写的代码,但是很奇怪的是老是上传不了,我看看发现$_FILES['upload_file']['tmp_name']这个的值都是为空?不知道是什么原因,本人刚开始学习php。着急中,谢谢。
解决方案 »
- php同页面传值怎么写?
- PHPEXCEL乱码
- php连接不上mysql
- php 如何遍历文件到一个数组中去?
- 如何让PHP加水印显示中文
- php连接mysql 问题
- PHP文件本身如何缓存在服务器内存中?
- 麻烦大家告诉我这是为什么:Warning: dl() [function.dl]: Unable to load dynamic library './mysql.so' - 找不到指定的模块。
- 我在一个网页对话框中用top.window.dialogArguments.document.postf.submit()对父窗口进行提交操作,在IE6下可以执行,但是在IE5下却没有
- 输入的结果怎么和想象的不一样,错在哪呢?
- 小妹求助:怎么安装thinkphp啊?小妹急死了!!
- ruby干嘛用的?我看到有人拿它和php,jsp来比
<p>Pictures:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>还有,注意你以上的代码只是打印出了被上传文件的基本信息,根本没有完成文件的上传,你还需要move_uploaded_file(),具体的自己查看php文档
<title>Upload Demo</title></head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
Choose Files <br>
<input name="upload_file" type="file"><br>
<input type="submit" value="UpLoad">
</form>
</body>
</html>
前面的表单,enctype="multipart/form-data"我也设置了,
move_uploaded_file(),这一步也有了,刚发帖的时候被我给弄点了,
if (!move_uploaded_file($upload_file,$store_dir.$upload_file_name)) {//move file
echo "fail to move file";
exit;
}
要不然
$upload_file=$_FILES[ 'upload_file '][ 'tmp_name '];
$upload_file_name=$_FILES[ 'upload_file '][ 'name '];
都是空值,
是不惜要什么其他的配置?
其次根据你ini文件的设置,找到所谓的temp文件夹,看看文件有否上传到临时文件夹里
再次,文件上传失败,页面显示什么,有否报出错误如果还是不行,把你的form代码,以及upload代码完整的贴出来,弄掉的给补上~~~~
@首先确认在文件上传的服务器上,是否有创建以及操作文件的权限
--- 权限我这边都开了,777的权限,
@其次根据你ini文件的设置,找到所谓的temp文件夹,看看文件有否上传到临时文件夹里
--- temp文件夹内没有文件,
@再次,文件上传失败,页面显示什么,有否报出错误
--- 没有报错信息,不知道php有没有什么可以catch错误的?我提交后没有错误信息 @如果还是不行,把你的form代码,以及upload代码完整的贴出来,弄掉的给补上~~~~
--- 好的,非常感谢
upload.html页面 <html><head>
<title>Upload Demo</title></head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
Choose Files <br>
<input name="upload_file" type="file"><br>
<input type="submit" value="UpLoad">
</form>
</body>
</html> upload.php页面 <?php
$upload_file=$_FILES['upload_file']['tmp_name'];
$upload_file_name=$_FILES['upload_file']['name'];
$store_dir = "/data1/test/UploadFile/";// store pathif(is_uploaded_file($upload_file)){
$file_size_max = 1024*1024;// Max_Size By bytes
$accept_overwrite = true;//be allowed to overwrite
if ($upload_file_size > $file_size_max) {//check size
echo "File_Size more than Max_Size";
exit;
}
if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {//check file is existed
Echo "there is the same files existed";
exit;
}
if (!move_uploaded_file($upload_file,$store_dir.$upload_file_name)) {//move file
echo "fail to move file";
exit;
}
echo "<p>The uploaded file name:";
echo $_FILES['upload_file']['name'];
//client orinigal file name。
echo "MIME Type :";
echo $_FILES['upload_file']['type'];
//MIME Type。
echo "FileSize:";
echo $_FILES['upload_file']['size'];
echo "Temp Name:";
echo $_FILES['upload_file']['tmp_name']; $Erroe=$_FILES['upload_file']['error'];
switch($Erroe){
case 0:
Echo "Success"; break;
case 1:
Echo "More than upload_max_filesize"; break;
case 2:
Echo "More than HTML MAX_FILE_SIZE "; break;
case 3:
Echo "Upload part";break;
case 4:
Echo "Failed";break;
}
}
else{
echo "no upload";
}
?>麻烦您帮忙看看。非常感激
--- 权限我这边都开了,777的权限,
两文件夹我都给了777的权限,还要配置什么东西吗 ?
@其次根据你ini文件的设置,找到所谓的temp文件夹,看看文件有否上传到临时文件夹里
--- temp文件夹内没有文件,
这个目录,我设置了权限了,但是我还有点不明白的是这个临时文件是怎么产生的?在post的时候就产生了嘛?
@再次,文件上传失败,页面显示什么,有否报出错误
--- 没有报错信息
file_uploads = On; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =; Maximum allowed size for uploaded files.
upload_max_filesize = 2M看看有没有做设置。就是你的你的777权限给的是什么文件夹?如果这里没有指定upload_tmp_dir,通常是系统的tmp,linux下通常是 /tmp ,win下通常是c:\windows\temp这类的,看看系统环境变量的设置。
这个是他的权限: drwxrwxrwx UploadFile; Whether to allow HTTP file uploads.
file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
这个我改成了;upload_tmp_dir =
upload_tmp_dir = /data1/test/UpLoad/(他的权限:drwxrwxrwx UploadFile); Maximum allowed size for uploaded files.
upload_max_filesize = 2M
多谢各位。小弟还在困惑中,
; File Uploads ;
;;;;;;;;;;;;;;;;; Whether to allow HTTP file uploads.
file_uploads = On; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = /data1/test/UploadFile/; Maximum allowed size for uploaded files.
upload_max_filesize = 8M
打印出来的结果: Array ( )
现在就是看能不能找到空值的原因
报 : chown: `apache:apache': invalid user
第一个页面1.php<html
<head>
<title>无标题文档</title>
</head>
<body>
<form name="form1" method="post" action="2.php" enctype="multipart/form-data" >
<input name="photoname" type="file">
<input type="submit" name="Submit" value="上传">
</form>
</body>
</html>第二个页面2.php
<html
<head>
<title>无标题文档</title>
</head>
<body>
<?PHP
$tmp_name=$_FILES['photoname']['name']; //获取文件名
if($tmp_name !='')
{
$v=copy($_FILES['photoname']['tmp_name'],"D:/AppServ/www/text/".$_FILES['photoname']['name']); //$_FILES['photoname']['tmp_name']获取文件路径
if($v==true)
echo "OK";
else
echo "NO";
}
?>
</body>
</html>这个是最简单的了,没有增加其它的功能,但我也有一个问题,就是上传的文件可能只在2M以内才能上传,大了就不行了,不知为什么,学php的朋友可以跟我聊聊,我Q是75450644