2016-12-04 24 views
0

私はこれに対する答えをどこからでも探していて、多くの記事を見つけましたが、どれも役に立たなかった。だから私は皆の助けをここに求める。PHPイメージアップロードの許可の問題

私はここで私は、画像をアップロードするときに私が取得エラーです

をホスティングGoDaddyはのWindowsのWebを使用しています:

PHP Warning: move_uploaded_file(../uploads/aczbyfeoghtmduikwxjrlnvqsp3.jpg): failed to open stream: Permission denied in G:\PleskVhosts\minebloxmc.net\httpdocs\web\upload.php on line 48 

PHP Warning: move_uploaded_file(): Unable to move 'C:\Windows\Temp\php27A2.tmp' to '../uploads/aczbyfeoghtmduikwxjrlnvqsp3.jpg' in G:\PleskVhosts\minebloxmc.net\httpdocs\web\upload.php on line 48 

そしてここでは、私のコードです:

<?php 

session_start(); 

$target_dir = "../uploads/"; 

$str = 'abcdefghijklmnopqrstuvwxyz'; 
$shuffled = str_shuffle($str); 

$target_file = $target_dir . $shuffled . basename($_FILES["fileToUpload"]["name"]); 

$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
// Check if image file is a actual image or fake image 
if(isset($_POST["submit"])) { 
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
    if($check !== false) { 
     echo "File is an image - " . $check["mime"] . "."; 
     $uploadOk = 1; 
    } else { 
     echo "File is not an image."; 
     $uploadOk = 0; 
    } 
} 

if (file_exists($target_file)) { 
    echo "Sorry, file already exists."; 
    $uploadOk = 0; 
} 
if ($_FILES["fileToUpload"]["size"] > 500000) { 
    echo "Sorry, your file is too large."; 
    $uploadOk = 0; 
} 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
&& $imageFileType != "gif" && $imageFileType != "JPG" && $imageFileType != "PNG" && $imageFileType != "JPEG" 
&& $imageFileType != "GIF") { 
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; 
    $uploadOk = 0; 
} 
if ($uploadOk == 0) { 
    echo "Sorry, your file was not uploaded."; 
} else { 
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
     echo '<br>'; 

     $con = mysqli_connect('127.0.0.1','root','sutdenlol1'); 

    if(!$con){ 
     echo 'Not Connected to Server'; 
    } 

    if(!mysqli_select_db($con,'mineblox')){ 
     echo 'Not Selecting Database'; 
    } 


     $sql = "UPDATE users 
    SET Profilepic='$target_file' WHERE ID = ". $_SESSION['id'] ." "; 

    if(!mysqli_query($con,$sql)) { 
     echo 'Not Inserted'; 
    } else { 
     echo 'Inserted'; 
    } 


    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
} 

echo '<br>'; 
echo '<img src="../uploads'.$target_file.'"/>'; 

?> 
+0

'uploads'フォルダのパーミッションを確認してください。それは '書き込み'の許可を持っている必要があります –

+0

私はそれをどのようにしますか? – Allosaurus

答えて

1

あなたがこれを述べたようにWindowsサーバーなので、GoDaddy権限パネルで権限を設定する必要があります。あなたはuploadsディレクトリの読み込み/書き込み許可を設定する必要があります。
重要:FTPで777を設定しても、Windowsサーバーでは切断されません。

ルートディレクトリのほかに、Windows®ホスティングアカウントの各ディレクトリに対して異なるディレクトリアクセス許可を設定できます。これにより、ファイルにアクセスできるユーザーと、そのディレクトリ内のファイルに対して実行できるアクションを制御できます。

  1. GoDaddyアカウントにログインします。
  2. ウェブホスティング
  3. を使用するホストアカウントの横にあるをクリックします。 ツールセクションから
  4. FTPファイルマネージャをクリックしてください。
  5. 権限を設定するディレクトリを選択します。
  6. クリック プライバシー
  7. 使用する権限を選択します。
  8. クリックOK
    • ウェブ見える - ディレクトリの内容がユーザーに表示されます。
    • ウェブ書き込み可能 - アプリケーションはこのディレクトリに書き込むことができます。
    • 継承 - 親ディレクトリからアクセス許可を継承します。ディレクトリ単位で権限を選択する場合は、このオプションの選択を解除する必要があります。 権限を継承するすべてのサブフォルダを設定し
    • - このフォルダから権限を継承するすべてのサブフォルダを変更します。

https://uk.godaddy.com/help/set-directory-permissions-windows-6481

+0

問題は、私はそれを行う方法を知らない、ツールと呼ばれるセクションがない – Allosaurus

+0

私はいくつかの情報を追加し、有用なリンクがあります。 – MennyMT