1

PHPでファイルをアップロードしたい。私が書いた

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

?>

しかし、それは機能していません。ファイルは私には見えません。どこに行くのですか?

4

3 に答える 3

4

作業中のスクリプトから遠く離れています

あなたが試すことができます

<?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>
于 2012-04-22T19:24:26.140 に答える
3

PHP を介して実際にファイルのアップロードを行っていないため、コードはほとんど機能していません。PHP ファイルのアップロードのチュートリアル(詳細)から始めて、もう一度やり直すことをお勧めします。新しいコードに問題がある場合は、助けを求めて、問題のあるコードを見せてください。

于 2012-04-22T17:29:32.147 に答える
0

ファイルのアップロードを機能させるには、POST メソッドを使用する必要があります。したがって、属性をタグ
に追加するだけで完了です。method="post"form

于 2012-04-22T18:24:19.393 に答える