2016-05-03 1 views
0

Я новичок в Mac OS X. В настоящее время я хочу разместить локальный хост на моем брате OS X и размещать php-файлы для него. Я сделал php, который может сделать снимок и сохранить его непосредственно в папке. Код работает на моем ПК с Windows 7, и я могу использовать его нормально. Однако он не работает в OS X, так как он всегда не мог сохранить фотографию в папке локально. Мой код, чтобы сохранить изображение является:file_put_contents на OS X El Capitan

<?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. И я дал целое Читать & Написать разрешение на папку. Я не уверен, почему фотография не хранится в папке с фотографиями. Но запрос работает, чтобы сохранить имя файла в базе данных.

Добавлена ​​информация: Я использую XAMPP с PHP 7.0

Спасибо за вашу помощь!

+0

Здравствуйте, efraim, у вас есть права на чтение и запись в целевой папке? –

+0

@Rob Biermann да, я уже дал читать и писать в папке «foto», как я написал выше, но все еще не работает. – efraim

+0

Если вы используете терминал и cd в том месте, где находится папка, выполните команду ' ls -l', вы должны видеть разрешения, OS X - это Linux, что означает, что права работают иначе, чем на Windows-машине. Лучшей практикой для тестовых сред было бы выполнение команды: 'sudo chmod -R 777 foldername'. 777 установит все разрешения на чтение и запись (fyi: right click-> show info, как правило, почти, но не совсем то же самое) для получения дополнительной информации о том, что я имею в виду: https://www.linux.com/learn/understanding -linux-file-permissions –

ответ

2

Пожалуйста, попробуйте изменить разрешение целевой папки, как это:

sudo chmod -R 777 *target_folder* 

Это должно решить проблему.

+0

Хотя разрешение 0777 не должно быть решением, заставить пользователя PHP/Apache запускаться и проверять разрешения в целевой папке, например, 0755 должно быть достаточно для папки, если все выполнено. – dbf