2016-05-03 17 views
0

i bin neu in Mac OS X. Derzeit möchte ich auf meinen Bruder OS X und Host-PHP-Dateien für ihn einen lokalen Host platzieren. Ich habe einen PHP erstellt, der ein Bild aufnehmen und direkt in den Ordner speichern kann. Der Code funktioniert auf meinem Windows 7 PC und ich kann ihn normal benutzen. Es funktioniert jedoch nicht im OS X, da das Foto immer lokal im Ordner nicht gespeichert werden konnte. Mein Code, um das Bild zu speichern ist:file_put_contents auf 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!'); 
} 

Ich habe bereits die ‚foto‘ Ordner innerhalb des PHP-Ordner erstellt. Und ich habe ganze Read & Schreibrechte für den Ordner gegeben. Ich bin mir nicht sicher, warum das Foto nicht im Fotoordner gespeichert ist. Aber die Abfrage arbeitet daran, den Dateinamen in der Datenbank zu speichern.

Hinzugefügte Informationen: Ich bin mit XAMPP mit PHP 7.0

Vielen Dank für Ihre Hilfe!

+0

Hallo efraim, haben Sie gelesen und Berechtigungen für den Zielordner schreiben? –

+0

@ Rob Biermann ja ich bereits geben lesen und im ‚foto‘ Ordner schreiben, wie ich oben geschrieben habe, aber immer noch nicht funktioniert noch .. – efraim

+0

Wenn Sie Terminal verwenden und cd zu dem Ort, wo sich der Ordner befindet, führen Sie dann ' ls -l, sollten Sie die Berechtigungen sehen, OS X ist ein Linux, was bedeutet, dass die Rechte anders als ein Windows-Rechner funktionieren. Best Practice für Testumgebungen wäre der Befehl 'sudo chmod -R 777 foldername'. 777 stellt alle Berechtigungen zum Lesen und Schreiben ein (fyi: rechter Mausklick -> show info ist normalerweise fast, aber nicht völlig gleich), um mehr darüber zu erfahren, was ich meine: https://www.linux.com/learn/understanding -linux-Datei-Berechtigungen –

Antwort

2

Bitte versuchen Sie die Berechtigungen Ihres Zielordner wie folgt zu ändern:

sudo chmod -R 777 *target_folder* 

Dies sollte das Problem beheben.

+0

Obwohl 0777 die Erlaubnis keine Lösung sein sollte, erhalten die Benutzer PHP/Apache läuft auf und die Berechtigungen für den Zielordner prüfen, beispiels 0755 sollte für den Ordner ausreichend sein, wenn alle erfüllt ist. – dbf