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";




标题写错了 是临时文件

PHP move_uploaded_file函数($_FILES[’file’][’tmp_name’]临时文件路径问题

表单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 上传进度不起作用。未设置会话变量

5.4新增数组声明方式,5.3及以下不支持

simpleXML 在 php 5.4 中不起作用

PHP 5.4 - '关闭 $this 支持'

如何在Debian 8(Jessie)上安装最新版本的PHP 5.4?

如何在不破坏 Zabbix 服务器的情况下从 php 5.4 迁移到 7.3?