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!
Hallo efraim, haben Sie gelesen und Berechtigungen für den Zielordner schreiben? –
@ Rob Biermann ja ich bereits geben lesen und im ‚foto‘ Ordner schreiben, wie ich oben geschrieben habe, aber immer noch nicht funktioniert noch .. – efraim
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 –