3

これは大きな問題のように思えますが、大部分は完了していますが、実際に行きたい場所にたどり着くことができません。

アップロード フォームの準備ができて動作し、upload という名前のフォルダーに保存されますが、セッションに保存されているホテル名に応じてフォルダーを作成する必要があります。これはページに表示され、現在のセッションをユーザーに知らせます。そのため、保存するときに、そのディレクトリに保存するために、それにちなんで名付けられたフォルダーを作成する必要があります。HTML のコードは次のとおりです。

<span class="prettyFile">
                                    <form id="form" action="assets/php/upload.php" method="post" enctype="multipart/form-data">  
                                        <div class="fileupload fileupload-new" data-provides="fileupload">
                                          <div class="input-append">
                                            <div class="uneditable-input span3" style="margin-top: -3px;"><i class="icon-file fileupload-exists"></i> <span class="fileupload-preview"></span></div><span class="btn btn-file btn-success"><span class="fileupload-new">Upload File</span><span class="fileupload-exists">Change</span><input type="file" name="file" /></span><a href="#" class="btn fileupload-exists btn-success" style="margin-top: -3px;" data-dismiss="fileupload">Remove</a>
                                            <button type="submit" name="submit" class="btn btn-primary fileupload-exists" value="Upload"><i class="icon-cloud-upload"></i> Upload</button>
                                          </div>
                                        </div>
                                    </form>
                                </span>

そして、ここにPHPがあります:

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 10000000)
&& in_array($extension, $allowedExts))
    if (file_exists("upload/". $_SESSION['curHotelName'] . "/" . $_FILES["file"]["name"]))
        {
          echo "<script language='javascript'>\n";
          echo "alert('This file exists! Please select a different file.'); window.location.href='https://hotelmobidev.jvgames.com/profile';";
          echo "</script>\n";
        }
        else
        {
          move_uploaded_file($_FILES["file"]["tmp_name"],
          "upload/". $_SESSION['curHotelName'] . "/" . $_FILES["file"]["name"]);
          echo "<script language='javascript'>\n";
          echo "alert('Success!'); window.location.href='https://hotelmobidev.jvgames.com/profile';";
          echo "</script>\n";
        } 
?>

私はまだそれをいじっていますが、誰かが私を正しい方向にぶつけることができれば、それは素晴らしいことです! みんなありがとう!

4

2 に答える 2

7

ファイルを移動する前に、ディレクトリを作成する必要があります。file_exists 関数を使用して、最初にディレクトリを確認してから、必要なディレクトリを作成できます。

if (!file_exists('path/to/directory')) {
  mkdir('path/to/directory', 0777, true);
}

他の許可を好むかもしれません。

于 2013-07-09T22:15:18.433 に答える
1

Ajax が役に立ちます ;) スクリプトを 1 つ作成します - アップロード用 2 つ目 - フォルダ内のファイルをチェックするため & 存在する場合は表示します

psこの問題はphpでは解決できません。悪い英語で申し訳ありません

于 2013-07-09T22:48:52.277 に答える