Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP上传文件_Php_Html_Post_Upload - Fatal编程技术网

用PHP上传文件

用PHP上传文件,php,html,post,upload,Php,Html,Post,Upload,我已经用各种编程语言编程多年了。我也有一些标记和脚本语言的经验。不过我对PHP还是新手。我正在努力为我爸爸修复他的网站,我在这过程中学到了很多东西。我已经解决了很多问题,但目前仍处于困境。我爸爸使用的PHP主机从5.1升级到5.4,网站瘫痪了。我注意到其中一个变化是现在需要定义变量。我修复了很多功能,但我在修复允许websit用户将图片上传到服务器的部分时遇到了问题。文件没有上传,我不知道为什么。 以下是PHP: $file = $_POST['file']; $file_name = $_PO

我已经用各种编程语言编程多年了。我也有一些标记和脚本语言的经验。不过我对PHP还是新手。我正在努力为我爸爸修复他的网站,我在这过程中学到了很多东西。我已经解决了很多问题,但目前仍处于困境。我爸爸使用的PHP主机从5.1升级到5.4,网站瘫痪了。我注意到其中一个变化是现在需要定义变量。我修复了很多功能,但我在修复允许websit用户将图片上传到服务器的部分时遇到了问题。文件没有上传,我不知道为什么。 以下是PHP:

$file = $_POST['file'];
$file_name = $_POST['file']['name'];
if ($file && $file_name)
{
if ($_FILES['file']['size']>$maxsize) $status = "Error: Picture size too large. Max     file size is $maxsize bytes.<br>";
if (($_FILES['file']['type']!="image/gif") && ($_FILES['file']  ['type']!="image/jpeg") && ($_FILES['file']['type']!="image/jpg") && ($_FILES['file'] ['type']!="image/png")) $status .= "Error: Wrong file type. Must be JPG or GIF only.<br>";
$picext = substr($file_name,-3); 
    $picext = strtolower($picext);
if ((!isset($status)) && ($picext!="gif") && ($picext!="jpg") && ($picext!="png"))    $status .= "Error: Wrong file type. Must be JPG or GIF or PNG only.<br>";
}

 if (!isset($status)){


//die("write".$id);

$email = $_POST['email'];
$aim = $_POST['aim'];
$icq = $_POST['icq'];
$yahoo = $_POST['yahoo'];
$homepage = $_POST['homepage'];
$myip = $_POST['myip'];
if (!$myip) $myip = $ip;
$email2 = $_POST['email2'];
$password = $_POST['password'];
$title = $_POST['title'];
$download = $_POST['download'];
$approved = $_POST['approved'];
$allowdelete = $_POST['allowdelete'];
$author = $_POST['author'];
$facebook = $_POST['facebook'];
$piclink = $_POST['piclink'];
$domain = $_POST['domain'];
$option3 = $_POST['option3'];
$secret = $_POST['secret'];
$q= "insert into $table values('', '$email', '$aim', '$icq', '$yahoo', '$homepage',      '0','0', '0', '0', '0', '0', '',        now(),'$myip','$email2','$password','$title','$download','$approved','$allowdelete','$auth              or','$facebook','$piclink','$domain','$option3','$secret')";
    $result = mysql_query($q) or die("Failed: $sql - ".mysql_error());
    $q = "select max(id) from $table";
    $result = mysql_query($q);
    $resrow = mysql_fetch_row($result);
    $id = $resrow[0];
    $picext = "png";
    $q = "update $table set picfile = '".$id.".".$picext."' where id='$id'";
    $result = mysql_query($q);
    $file = $_POST['file'];
    @copy($file, "../pics/".$id.".".$picext);
    $picfile=$id.".".$picext;
    $act = "update"; //set mode back to update
    Header("Location: newadmin.php?id=$id");

}
$file=$\u POST['file'];
$file\u name=$\u POST['file']['name'];
如果($file&&$file\u name)
{
如果($_FILES['file']['size']>$maxsize)$status=“错误:图片大小太大。最大文件大小为$maxsize字节。
”; 如果($U文件['file']['type']!=“image/gif”)和($U文件['file']['type']!=“image/jpeg”)&($U文件['file']['type']!=“image/jpg”)&($U文件['file']['type']!=“image/png”)$状态。=“错误:错误的文件类型。必须是jpg或gif格式。”; $picext=substr($file\u name,-3); $picext=strtolower($picext); 如果((!isset($status))&&($picext!=“gif”)&&($picext!=“jpg”)&&($picext!=“png”))$status.=“错误:文件类型错误。必须仅为jpg或gif或png。
”; } 如果(!isset($status)){ //死(“写“..$id”); $email=$_POST['email']; $aim=$_POST['aim']; $icq=$_POST['icq']; $yahoo=$_POST['yahoo']; $homepage=$_POST['homepage']; $myip=$_POST['myip']; 如果(!$myip)$myip=$ip; $email2=$_POST['email2']; $password=$_POST['password']; $title=$_POST['title']; $download=$_POST['download']; $approved=$_POST['approved']; $allowdelete=$_POST['allowdelete']; $author=$_POST['author']; $facebook=$_POST['facebook']; $piclink=$_POST['piclink']; $domain=$_POST['domain']; $option3=$_POST['option3']; $secret=$_POST['secret']; $q=“插入$table值(''''$email','$aim','$icq','$yahoo','$homepage','0','0','0','0','0','0','',now(),'$myip','$email2','$password','$title','$download','$approved','$allowdelete','$auth','$facebook','$piclink','$domain','$option3','$secret'”; $result=mysql\u query($q)或die(“失败:$sql-”.mysql\u error()); $q=“从$table中选择最大值(id)”; $result=mysql\u查询($q); $resrow=mysql\u fetch\u row($result); $id=$resrow[0]; $picext=“png”; $q=“更新$table set picfile=”“$id.”“$picext。”“其中id=”$id“; $result=mysql\u查询($q); $file=$_POST['file']; @复制($file,“../pics/”$id.“..$picext”); $picfile=$id.“..$picext; $act=“update”//将模式设置回更新 标题(“Location:newadmin.php?id=$id”); }
以下是表单html代码:

<td width="91"><div align="right"><font size="-1" face="Verdana, Arial, Helvetica,           sans-serif">Upload 
    Picture:</font></div></td>
  <td width="403"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
    <form name='file' method='post' enctype="multipart/form-data" action="newadmin.php">
    <input name="file" type="file" size="50" maxlength="50">
    </form>
    </font></td>
  <td width="200">&nbsp;</td>
  <td width="18">&nbsp;</td>
</tr>
<tr> 
  <td width="91"> 
    <div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
      <!-- update & create button -->
    <button type='submit' name='submit' value='Submit'><img src='../images/formbutton.gif' width='40' height='40' /><?echo $tag;?>
上传
图片:
任何帮助都将不胜感激。如果这有帮助,由于错误日志中的某些原因,$picext未设置。但是如果我放入“$picext=“png”;”文件仍然无法上载。

尝试使用

 $file = $_FILES['file']['name'];
 move_uploaded_file($_FILES['file']['tmp_name'], "../pics/".$id.".".$picext);
而不是

 $file = $_POST['file'];

将前两行更改为:

$file = $_FILES['file'];
$file_name = $_FILES['file']['name'];
以下几行:

$file = $_POST['file'];
@copy($file, "../pics/".$id.".".$picext);
致:


你有没有试过制作一个简单的文件上传程序,看看问题是出在这段代码还是主机升级上?我没有,但是Krish R.下面的答案让它起作用了。非常感谢。这真是太棒了!非常感谢克里斯·R。!新代码有什么不同之处?有些主机可能会禁用securityAh的
copy()
功能。它的安全漏洞是什么?它们几乎禁用了所有文件处理功能它是
$\u文件
而不是
$\u文件
$file = $_FILES['file'];
move_uploaded_file($file['tmp_name'],"../pics/".$id.".".$picext);