doumaqing6652 2012-04-22 17:27
浏览 9
已采纳

无法在PHP中执行文件上载

I want to upload files in PHP. I wrote

<form target="_self" enctype="multipart/form-data">
<input type="file" name="file" id="file" />
<input name="submit" type="submit" value="submit" />
</form>
<?php

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

?>

but it's not working. Files are not visible to me, that where they are going?

  • 写回答

3条回答 默认 最新

  • doutan2228 2012-04-22 19:24
    关注

    You are a long way from a working script

    You can try

    <?php
    $output = array ();
    $errors = array ();
    $savePath = "uploaded"; // PATH to upload images
    $allowedExt = array (
            "png",
            "jpg" 
    );
    if (isset ( $_FILES ['file'] ) && $_FILES ["file"] ["error"] == UPLOAD_ERR_OK) {
    
        $fileName = $_FILES ['file'] ['name'];
        $fileSize = $_FILES ['file'] ['size'];
        $fileTemp = $_FILES ['file'] ['tmp_name'];
        $fileType = $_FILES["file"]["type"] ;
        $fileExt = pathinfo ( $fileName, PATHINFO_EXTENSION );
        $fileExt = strtolower ( $fileExt );
    
        //var_dump($fileExt);
    
        if (!in_array ( $fileExt, $allowedExt )) {
            $errors [] = "Invalid File Extention";
        }
    
        if ($fileSize > 800*1024) {
            $errors [] = "File Too large";
        }
    
        if (! is_writable ( $savePath )) {
            $errors [] = "File Destination not writeable";
        }
    
        $fileDst = $savePath . DIRECTORY_SEPARATOR . $fileName;
        $filePrifix = basename ( $fileName, "." . $fileExt );
        $i = 0;
        while ( file_exists ( $fileDst ) ) {
            $i ++;
            $fileDst = $savePath . DIRECTORY_SEPARATOR . $filePrifix . "_" . $i . "." . $fileExt;
    
        }
        if (count ( $errors ) == 0) {
            if (@move_uploaded_file ( $fileTemp, $fileDst )) {
                $output['STATUS'] = "OK";
                $output['TYPE'] = $fileType;
                $output['Size'] = $fileSize;
                $output['Destination'] = $fileDst;
            } else {
                $errors [] = "Error Saving File";
            }
    
        }
    
    
        if(count($errors) > 0)
        {
            echo "<h2>Upload Error</h2>" ;
    
            foreach ($errors as $error)
            {
                echo $error , "<br/>" ;
    
            }
        }
        else
        {
            echo "<h2>File  Uploaded</h2>" ;
            foreach ($output as $key => $value)
            {
                echo $key , ":" , $value , "<br/>" ;
            }
    
        }
    }
    
    ?>
    <br/>
    <br />
    <form method="post" target="_self" enctype="multipart/form-data">
        <input type="file" name="file" id="file" /> <input name="submit"
            type="submit" value="submit" />
    </form>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。