php5.4 文件上传问题 5.4以前 $_FILE['file']['tmp_name'] 存储的是历史文件 5.4怎么是tem/phpXXXX了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php5.4 文件上传问题 5.4以前 $_FILE['file']['tmp_name'] 存储的是历史文件 5.4怎么是tem/phpXXXX了相关的知识,希望对你有一定的参考价值。
我的html代码
<html>
<head>
<title></title>
</head>
<body>
<center>
<form method="post" enctype="multipart/form-data" action="./get_file.php?act=uploadfile" >
<input type="file" id="file" name="file">
<input type="submit" value="上传">
</form>
</center>
</body>
</html>
PHP代码:
<?php
$action = isset($_GET['act']) ? $_GET['act'] : '';
if('uploadfile' == $action)
if (file_exists("./upload" . $_FILES["file"]["name"]))
echo $_FILES["file"]["name"] . " already exists. ";
else
$res = move_uploaded_file($_FILES["file"]["tmp_name"],"./upload" . $_FILES["file"]["name"]);
if($res)
echo "Stored in: " . "./upload" . $_FILES["file"]["name"];
else
echo "move false";
标题写错了 是临时文件
表单post方法上传文件,代码如下,可能是写入权限的问题,我用的虚拟主机,下面的$uploadfile路径应该是什么呢?
if (!move_uploaded_file($_FILES[’upfile’][’tmp_name’],$uploadfile))
echo "文件上传失败,错误信息:".$_FILES[’upfile’][’error’]."<br>";
print_r($_FILES);
文件上传失败,错误信息:0
Array ( [upfile] => Array ( [name] => 106363.jpg [type] => image/jpeg [tmp_name] => C:\WINDOWS\temp\phpFC.tmp [error] => 0 [size] => 2450 ) )
hi8 14:54:34
$uploadfile = /listen/web/网站目录 这样可以吗?
这个是PHP ,move_uploaded_file上传函数, 如果上传失败,则输出错误信息。
if (!move_uploaded_file($_FILES[’upfile’][’tmp_name’],$uploadfile))
echo "文件上传失败,错误信息:".$_FILES[’upfile’][’error’]."<br>";
print_r($_FILES);
这个是页面输出结果
文件上传失败,错误信息:0
Array ( [upfile] => Array ( [name] => 106363.jpg [type] => image/jpeg [tmp_name] => C:\WINDOWS\temp\phpFC.tmp [error] => 0 [size] => 2450 ) )
文件上传失败,错误信息:0 错误信息是0的话, 应该是上传成功了才对的。 但是网站相关目录里找不到。
$uploadfile 是我上传的文件的路径。 “/lis....../we...../网站目录”
“当主机开通后会在自动生成3个文件夹:"web、db、log",请将您的文件上传到"web"目录下。。 ”
“传WEB” 啊??
测试结论:
$uploadfile用相对地址: $uploadfile="upimages/.$_FILES[’upfile’][’name’]"
测试正确的代码贴出如下,请参考:
function getname($exname)
$dir = "upimages/"; //2009.11.25
if(!is_dir($dir))
mkdir($dir,0777);
$time=time();
$name=$time.".".$exname;
return $dir.$name;
$exname=strtolower(substr($_FILES[’upfile’][’name’],(strrpos($_FILES[’upfile’][’name’],’.’)+1)));
if ((($_FILES["upfile"]["type"] == "image/gif")
|| ($_FILES["upfile"]["type"] == "image/jpeg")
|| ($_FILES["upfile"]["type"] == "image/pjpeg"))
&& ($_FILES["upfile"]["size"] < 80000))
$uploadfile = getname($exname);
if (move_uploaded_file($_FILES[’upfile’][’tmp_name’],$uploadfile))
if(!trim($_FILES[’upfile’][’name’]=""))
$uploadfile="/shopsale/admin/".$uploadfile;
else
$uploadfile="";
mysql_query("insert into tb_,);
echo "<script>alert(’商品".$mingcheng."添加成功!’);window.location.href=’addproducts.php’;</script>";
else
echo "文件上传失败,错误信息:".$_FILES[’upfile’][’error’]."<br>";
print_r($_FILES);
else
echo "无效的文件类型 Invalid file <br> 或文件大小超过80k";
参考技术A 没懂你的意思
Uploadify 完成但不上传
【中文标题】Uploadify 完成但不上传【英文标题】:Uploadify completes but doesn't upload 【发布时间】:2012-07-08 08:07:44 【问题描述】:我正在尝试在我的网站上使用 Uploadify 并使用以下 uploadify.php 进行设置:
<?php
// Define a destination
//$targetFolder = '/uploads'; // Relative to the root
if (!empty($_FILES))
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'];
$targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];
// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png'); // File extensions
$fileParts = pathinfo($_FILES['Filedata']['name']);
if (in_array($fileParts['extension'],$fileTypes))
move_uploaded_file($tempFile,$targetFile);
echo '1';
else
echo 'Invalid file type.';
?>
它没有上传,所以我注释掉了 $targetFolder 并更改了 $targetPath 以便它只是文档根目录。当我尝试使用 Uploadify 上传 file.txt 时,这导致 $targetFile 成为 /home/user/public_html/example.com/file.txt。该文件夹设置为 755。我不知道问题可能是什么。否则,我正在使用 Uploadify 的香草安装,一切似乎都工作正常,除了文件实际上从未到达应有的位置。
【问题讨论】:
move_uploaded_file 如果失败应该返回警告 $foo=move_uploaded_file ... var_dump($foo); 【参考方案1】:文件夹权限没有保持设置为 755 是一个问题。我退出并重新登录 cPanel,现在一切正常。
【讨论】:
以上是关于php5.4 文件上传问题 5.4以前 $_FILE['file']['tmp_name'] 存储的是历史文件 5.4怎么是tem/phpXXXX了的主要内容,如果未能解决你的问题,请参考以下文章
PhP 5.4 中的 PhP 上传进度不起作用。未设置会话变量