2016-05-03 14 views
0

私はMac OS Xを初めて使っています。現在、私は兄OS Xにlocalhostを置き、phpファイルをホストしたいと思っています。私は写真を撮って、それを直接フォルダに保存できるPHPを作った。コードは、私のWindows 7のPCで動作していると私はそれを正常に使用することができます。しかし、それはいつもローカルでフォルダに写真を保存できなかったので、OS Xでは動作していません。 画像を保存するために私のコードは次のとおりです。OS X El capitanのfile_put_contents

<?php 
require('includes/connect.php'); // Connect to database 

$rmid = $_GET['id']; // Get product ID 

// Fetch photo only if product id is not empty 
if (!empty($rmid)) { 
    $rawData = $_POST['imgBase64']; 
    echo "<img src='".$rawData."' />"; // Show photo 

    list($type, $rawData) = explode(';', $rawData); 
    list(, $rawData)  = explode(',', $rawData); 
    $unencoded = base64_decode($rawData); 

    $filename = date('dmYHi').'_'.rand(1111,9999).'_'.$rmid.'.jpg'; // Set a filename 
    file_put_contents("/foto/$filename", base64_decode($rawData)); // Save photo to folder 

    // Update database with the new filename 
    mysqli_query($conn,"INSERT INTO foto(rmid,namafoto) VALUES ('$rmid','".$filename."')"); 
} else { 
    die('Rekam Medis ID is missing!'); 
} 

私はすでにPHPフォルダ内の「写真」フォルダを作成しています。そして私は全体を与えたRead &フォルダへの書き込み権限。なぜ写真がfotoフォルダの中に保存されているのかわかりません。しかし、クエリはデータベースにファイル名を格納するために働いています。

追加情報:私はPHP 7.0

あなたの助けを

おかげでXAMPPを使用しています!

+0

こんにちはefraim、あなたはターゲットフォルダの読み取りと書き込みの権限を持っていますか? –

+0

@Rob Biermannはい私はすでに私が上記のように 'foto'フォルダに読み書きをしていますが、まだ動作していません。 – efraim

+0

端末を使用していて、フォルダがある場所にcdすれば、 ls -l'を実行すると、アクセス権が表示されます。OS XはLinuxです。つまり、Windowsマシンとは異なる権限で動作します。テスト環境のベストプラクティスは、コマンド 'sudo chmod -R 777 foldername'を実行することです。 777は、私が意味することの詳細について、読み書きするためのすべての権限を設定します(fyi:右クリック - >情報の表示は通常ほぼ同じですが完全に同じではありません):https://www.linux.com/learn/understanding -linux-file-permissions –

答えて

2

このようなあなたのターゲットフォルダのパーミッションを変更してみてください:

sudo chmod -R 777 *target_folder* 

これは、問題を解決する必要があります。

+0

0777権限は解決策ではありませんが、PHP/Apacheが実行されているユーザーを取得し、対象フォルダのアクセス許可を確認してください。たとえば、すべてが満たされている場合は0755で十分です。 – dbf

関連する問題