以下是上传图片的代码,在本地运行是正常的,但在租回来的免费空间上运行出现了"文件格式不符"提示,并终止运行。请问是哪里出错了,应该怎样改?header ('Content-type: text/html; charset=utf-8');
$countNum=count($_POST['Comment']);//出现多少次$countNumt就值就等于多少
for($i=0; $i<$countNum; $i++){ //1
if($_FILES['Photo']['name'][$i] != ""){ //2
//echo "文件名称:" .$_FILES['Photo']['name'][$i]."<br>";
if($_FILES['Photo']['error'][$i] > 0){//这几行是上传文件时显示的错误信息
echo "文件:" .$_FILES['Photo']['name'][$i]."<br>";
switch($_FILES['Photo']['error'][$i]){
case 1 : die("文件大小超出 php.ini:upload_max_filesize 限制");
case 2 : die("文件大小超 MAX_FILE_SIZE 限制");
case 3 : die("文件仅被部分上传");
case 4 : die("文件未被上传");
}
}
$destDir = "../photos";//如果已上传,则指定文件夹名字为Photo
if(!is_dir($destDir) || !is_writeable($destDir))//判断文件夹$destDit目录不存在或无法写入,两竖||是或的意思,叹号是反向(TRUE就是FALES
die("目录不存在或无法写入");//终止并输出信息
//判断文件格式
$checkExt = getimagesize($_FILES['Photo']['tmp_name'][$i]);
if($checkExt[2] == NULL)
die("文件格式不符");
//指定扩展名
switch($checkExt[2]){
case 1 : $Ext = "gif";break;
case 2 : $Ext = "jpg";break;
case 3 : $Ext = "png";break;
}
//文件命名
$Name = date("Ymd") . "_"
. substr(md5(uniqid(rand())),0,5) . "." . $Ext;
$countNum=count($_POST['Comment']);//出现多少次$countNumt就值就等于多少
for($i=0; $i<$countNum; $i++){ //1
if($_FILES['Photo']['name'][$i] != ""){ //2
//echo "文件名称:" .$_FILES['Photo']['name'][$i]."<br>";
if($_FILES['Photo']['error'][$i] > 0){//这几行是上传文件时显示的错误信息
echo "文件:" .$_FILES['Photo']['name'][$i]."<br>";
switch($_FILES['Photo']['error'][$i]){
case 1 : die("文件大小超出 php.ini:upload_max_filesize 限制");
case 2 : die("文件大小超 MAX_FILE_SIZE 限制");
case 3 : die("文件仅被部分上传");
case 4 : die("文件未被上传");
}
}
$destDir = "../photos";//如果已上传,则指定文件夹名字为Photo
if(!is_dir($destDir) || !is_writeable($destDir))//判断文件夹$destDit目录不存在或无法写入,两竖||是或的意思,叹号是反向(TRUE就是FALES
die("目录不存在或无法写入");//终止并输出信息
//判断文件格式
$checkExt = getimagesize($_FILES['Photo']['tmp_name'][$i]);
if($checkExt[2] == NULL)
die("文件格式不符");
//指定扩展名
switch($checkExt[2]){
case 1 : $Ext = "gif";break;
case 2 : $Ext = "jpg";break;
case 3 : $Ext = "png";break;
}
//文件命名
$Name = date("Ymd") . "_"
. substr(md5(uniqid(rand())),0,5) . "." . $Ext;
+++$_FILES['Photo']['type'][$i]是否有值?
getimagesize函数是否被禁用?
在本地运行出现:
Warning: getimagesize(image/pjpeg) [function.getimagesize]: failed to open stream: No such file or directory in C:\AppServ\www\Album\upload.php on line 212
文件格式不符
在空间运行依然出现:
文件:塑001.jpg
文件格式不符
header ('Content-type: text/html; charset=utf-8');
$countNum=count($_POST['Comment']);//出现多少次$countNumt就值就等于多少
for($i=0; $i<$countNum; $i++){ //1
if($_FILES['Photo']['name'][$i] != ""){ //2
//echo "文件名称:" .$_FILES['Photo']['name'][$i]."<br>";
if($_FILES['Photo']['error'][$i] > 0){//这几行是上传文件时显示的错误信息
echo "文件:" .$_FILES['Photo']['name'][$i]."<br>";
switch($_FILES['Photo']['error'][$i]){
case 1 : die("文件大小超出 php.ini:upload_max_filesize 限制");
case 2 : die("文件大小超 MAX_FILE_SIZE 限制");
case 3 : die("文件仅被部分上传");
case 4 : die("文件未被上传");
}
} $destDir = "../photos";//如果已上传,则指定文件夹名字为Photo
if(!is_dir($destDir) || !is_writeable($destDir))//判断文件夹$destDit目录不存在或无法写入,两竖||是或的意思,叹号是反向(TRUE就是FALES
die("目录不存在或无法写入");//终止并输出信息
//判断文件格式
$checkExt = $_FILES['Photo']['type'][$i]; //这里修改一下
if($checkExt[2] == NULL)
die("文件格式不符"); //指定扩展名
switch($checkExt[2]){
case 1 : $Ext = "gif";break;
case 2 : $Ext = "jpg";break;
case 3 : $Ext = "png";break;
}
//文件命名
$Name = date("Ymd")."_".substr(md5(uniqid(rand())),0,5).".".$Ext;
}
}
?>
试过了,
在本地运行出现:
Warning: getimagesize(image/pjpeg) [function.getimagesize]: failed to open stream: No such file or directory in C:\AppServ\www\Album\upload.php on line 212
文件格式不符
在空间运行依然出现:
文件:塑001.jpg
文件格式不符
header ('Content-type: text/html; charset=utf-8');
$countNum=count($_POST['Comment']);//出现多少次$countNumt就值就等于多少
for($i=0; $i<$countNum; $i++){ //1
if($_FILES['Photo']['name'][$i] != ""){ //2
//echo "文件名称:" .$_FILES['Photo']['name'][$i]."<br>";
if($_FILES['Photo']['error'][$i] > 0){//这几行是上传文件时显示的错误信息
echo "文件:" .$_FILES['Photo']['name'][$i]."<br>";
switch($_FILES['Photo']['error'][$i]){
case 1 : die("文件大小超出 php.ini:upload_max_filesize 限制");
case 2 : die("文件大小超 MAX_FILE_SIZE 限制");
case 3 : die("文件仅被部分上传");
case 4 : die("文件未被上传");
}
} $destDir = "../photos";//如果已上传,则指定文件夹名字为Photo
if(!is_dir($destDir) || !is_writeable($destDir))//判断文件夹$destDit目录不存在或无法写入,两竖||是或的意思,叹号是反向(TRUE就是FALES
die("目录不存在或无法写入");//终止并输出信息
//判断文件格式
$checkExt = $_FILES['Photo']['type'][$i]; //这里修改一下
if($checkExt == NULL) //这里也要改一下,刚才忘了
die("文件格式不符"); //指定扩展名
switch($checkExt[2]){
case 1 : $Ext = "gif";break;
case 2 : $Ext = "jpg";break;
case 3 : $Ext = "png";break;
}
//文件命名
$Name = date("Ymd")."_".substr(md5(uniqid(rand())),0,5).".".$Ext;
}
}
?>
出现提示:
文件名:001.jpg
文件格式不符是不是我租用的空间有问题?还是需要改动哪里?
if($_POST['mmail'] != NULL){
die ();
}
//以上是防止垃圾留言,接426行按钮//以下是检查文本域输入内容是否已经存在
// *** Redirect if username exists
$MM_flag="MM_insert";
if (isset($_POST[$MM_flag])) {
$MM_dupKeyRedirect="upload.php";
$loginUsername = $_POST['number'];
$LoginRS__query = sprintf("SELECT number FROM album WHERE number=%s", GetSQLValueString($loginUsername, "text"));
mysql_select_db($database_mymy2012, $mymy2012);
$LoginRS=mysql_query($LoginRS__query, $mymy2012) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS); //if there is a row in the database, the username was found - can not add the requested username
if($loginFoundUser){
$MM_qsChar = "?";
//append the username to the redirect page
if (substr_count($MM_dupKeyRedirect,"?") >=1) $MM_qsChar = "&";
$MM_dupKeyRedirect = $MM_dupKeyRedirect . $MM_qsChar ."requsername=".$loginUsername;
header ("Location: $MM_dupKeyRedirect");
exit;
}
}$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
//以上是检查文本域输入内容是否已经存在//引入函数
include("resize.php");$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {//0 header ('Content-type: text/html; charset=utf-8');
$countNum=count($_POST['Comment']);//出现多少次$countNumt就值就等于多少
for($i=0; $i<$countNum; $i++){ //1
if($_FILES['Photo']['name'][$i] != ""){ //2
//echo "文件名称:" .$_FILES['Photo']['name'][$i]."<br>";
if($_FILES['Photo']['error'][$i] > 0){//这几行是上传文件时显示的错误信息
echo "文件:" .$_FILES['Photo']['name'][$i]."<br>";
switch($_FILES['Photo']['error'][$i]){
case 1 : die("文件大小超出 php.ini:upload_max_filesize 限制");
case 2 : die("文件大小超 MAX_FILE_SIZE 限制");
case 3 : die("文件仅被部分上传");
case 4 : die("文件未被上传");
}
}
$destDir = "../photos";//如果已上传,则指定文件夹名字为Photo
if(!is_dir($destDir) || !is_writeable($destDir))//判断文件夹$destDit目录不存在或无法写入,两竖||是或的意思,叹号是反向(TRUE就是FALES
die("目录不存在或无法写入");//终止并输出信息
//判断文件格式
$checkExt = $_FILES['Photo']['type'][$i];
if($checkExt == NULL)
die("文件格式不符");
//指定扩展名
switch($checkExt[2]){
case 1 : $Ext = "gif";break;
case 2 : $Ext = "jpg";break;
case 3 : $Ext = "png";break;
}
//文件命名
$Name = date("Ymd") . "_"
. substr(md5(uniqid(rand())),0,5) . "." . $Ext;
//复制暂存档
move_uploaded_file($_FILES['Photo']['tmp_name'][$i]
, $destDir . "/" . $Name);
//判断是否缩图
//if($_POST['checkResize']){//判断用户是否勾选了缩略图选项
$src = $destDir . "/" . $Name;
$dest = $src;
$destW = 320;//上传图片的宽度
$destH = $destW;
imagesResize($src,$dest,$destW,$destH);
//}
//预览图
$src = $destDir . "/" . $Name;
$dest = $destDir . "/thum/" . "thum_" . $Name;
$destW = 100;//略图的宽度
$destH = 100;//略图的高度
$src2 = $Name;
$dest2 = "thum_" . $Name;
imagesResize($src,$dest,$destW,$destH);
$insertSQL = sprintf("INSERT INTO album (Name, Name_thum, `Comment`,`value`,`type`,`content`,`number`,`exchange`,shengid,cityid,address,Nameph,Namesu,Username,ZName,Tel,Email,QQ,MSN,ip,up_time) VALUES (%s,%s,%s, %s, %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",
GetSQLValueString($src, "text"),
GetSQLValueString($dest, "text"),
GetSQLValueString($_POST['Comment'][$i], "text"),
GetSQLValueString($_POST['value'][$i], "text"),
GetSQLValueString($_POST['type'][$i], "text"),
GetSQLValueString($_POST['content'], "text"),
GetSQLValueString($_POST['number'], "text"),
GetSQLValueString($_POST['exchange'][$i], "text"),
GetSQLValueString($_POST['shengid'], "text"),
GetSQLValueString($_POST['cityid'], "text"),
GetSQLValueString($_POST['address'], "text"),
GetSQLValueString($src2, "text"),
GetSQLValueString($dest2, "text"),
GetSQLValueString($_POST['Username'], "text"),
GetSQLValueString($_POST['ZName'], "text"),
GetSQLValueString($_POST['Tel'], "text"),
GetSQLValueString($_POST['Email'], "text"),
GetSQLValueString($_POST['QQ'], "text"),
GetSQLValueString($_POST['MSN'], "text"),
GetSQLValueString($_POST['ip'], "text"),
GetSQLValueString($_POST['up_time'], "text")); mysql_select_db($database_mymy2012, $mymy2012);
$Result1 = mysql_query($insertSQL, $mymy2012) or die(mysql_error());
$insertGoTo = "addsuccess.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}//2
}//1
}//0
}
if (!isset($_GET['Num']))
$Num=1;
else
$Num=$_GET['Num'];
?>
print_r($_FILES);
exit;上传文件后,帖出结果
出现以下提示:Array ( [Photo] => Array ( [name] => Array ( [0] => 濉戞枡鐩?jpg ) [type] => Array ( [0] => ) [tmp_name] => Array ( [0] => ) [error] => Array ( [0] => 6 ) [size] => Array ( [0] => 0 ) ) )
UPLOAD_ERR_OK
其值为 0,没有错误发生,文件上传成功。 UPLOAD_ERR_INI_SIZE
其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 UPLOAD_ERR_FORM_SIZE
其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 UPLOAD_ERR_PARTIAL
其值为 3,文件只有部分被上传。 UPLOAD_ERR_NO_FILE
其值为 4,没有文件被上传。 UPLOAD_ERR_NO_TMP_DIR
其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。 UPLOAD_ERR_CANT_WRITE
其值为 7,文件写入失败。PHP 5.1.0 引进。
=============================================
是你的免费空间对系统临时目录没有权限!!!!!
代码如下:
<?php
echo "文件名称:".$_FILES['myfile']['name']."<br>";
echo "文件大小:".$_FILES['myfile']['size']."<br>";
echo "文件格式:".$_FILES['myfile']['type']."<br>";
echo "临时文件名:".$_FILES['myfile']['tmp_name']."<br>";
echo "错误代码:".$_FILES['myfile']['error']."<br>";
?>
<!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=utf-8" />
<title>无标题文档</title>
</head><body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<input type="file" name="myfile" id="myfile" />
<input type="submit" name="button" id="button" value="提交" />
<input name="MAX_FILE_SIZE" type="hidden" id="MAX_FILE_SIZE" value="10000000" />
</form>
</body>
</html>上传文件系统显示如下
文件名称:绿茶.jpg
文件大小:0
文件格式:
临时文件名:
错误代码:6与免费空间联系,他们说是我网页的原因与他们无关系。我该怎么办啊?
看看是否有值,若有则检查该路径是否可写
否则联系管理员,要求正确的配置
文件名称:绿茶.jpg
文件大小:0
文件格式:
临时文件名:
错误代码:6
e:\temp\temp
bool is_writable ( string filename )
$d = ini_get('upload_tmp_dir');
echo is_writeable($d) ? '可写' : '不可写';
(唠叨) ,你好! $d = ini_get('upload_tmp_dir');
echo is_writeable($d) ? '可写' : '不可写';
在本地运行及网站空间都是显示'不可写',所以还不敢确认是否联系管理员,要求正确的配置,因为本地运行也出现了显示'不可写' 但也可以上传。
<?php
echo "文件名称:".$_FILES['myfile']['name']."<br>";
echo "文件大小:".$_FILES['myfile']['size']."<br>";
echo "文件格式:".$_FILES['myfile']['type']."<br>";
echo "临时文件名:".$_FILES['myfile']['tmp_name']."<br>";
echo "错误代码:".$_FILES['myfile']['error']."<br>";
echo ini_get('upload_tmp_dir')."<br>"; $d = ini_get('upload_tmp_dir');
echo is_writeable($d) ? '可写' : '不可写';
?>《在空间上的显示结果:》
文件名称:绿茶.jpg
文件大小:0
文件格式:
临时文件名:
错误代码:6
e:\temp\temp
不可写
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}?>
前面几行表示上传文件的格式符合其一即可,这段代码你看下
if(is_uploaded_file($_FILES['myfile']['tmp_name'])){
$destDir = "photos
if(!is_dir($destDir) || !is_writeable($destDir)) die("目录不存在或无法写入");然后在空间运行,出现“Invalid file目录不存在或无法写入”提示。
(唠叨) ,我该怎么跟他们免费空间说?
UPLOAD_ERR_NO_TMP_DIR
其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。
已经说得再清楚不过了,总是死缠烂打也是不可能出成果的!!!
明明登录了,怎么提示"您还没有在CSDN登录,请登录或者注册"登录了也记不了贴.这样下去没人给我回帖了.