file_exists funktioniert nicht. Ich habe mir ein paar Beispiele angesehen und immer noch nicht. Programm erkennt die Datei nicht. Der Pfad meiner Datei ist /var/www/osbs/PHPAPI/recording.mp3 und der Website-Root befindet sich in osbs. Der Speicherort dieser Datei befindet sich in PHPAPI, weshalb ich den vollständigen Pfad nicht in file_put_contents einstelle. Das Programm ist in der Lage, das Original aufzunehmen.mp3, aber keine angehängten Versionen davon.
%Vor% Ihr Problem ist mit file_put_contents
. Sie müssen einen vollständigen Pfad angeben, und Sie geben nur einen Dateinamen an. Probieren Sie echo
ing $name
aus, bevor Sie es verwenden. Sie werden feststellen, dass es sich nicht um einen Pfad, sondern nur um einen Dateinamen handelt.
Ich würde Ihnen empfehlen, am Anfang der Datei eine Konstante mit dem Pfad zu setzen, anstatt sich manchmal auf relative Pfade zu verlassen und manchmal auf absolute Pfade zu vertrauen.
%Vor%Was ich geändert habe:
const SAVE_PATH = "/var/www/osbs/";
file_put_contents
( DAS IST DER AKTUELLE FIX, SIE BENÖTIGEN HIER EINEN VOLLEN PFAD ) RecordingUrl
gesetzt ist, andernfalls erhalten Sie eine PHP-Warnung, wenn sie nicht gesetzt ist. Das Problem scheint in der ersten Zeile Ihres Skripts zu liegen:
%Vor% Dies wird recording.mp3
zu $actual_filename
zuweisen. Sie suchen dann nach recording.mp3.mp3
, indem Sie die Erweiterung mit dem Dateinamen verketten. Ich denke, Sie möchten PATHINFO_BASENAME
verwenden, die den Dateinamen sans Erweiterung zurückgibt.
Sie sind verwirrt zwischen URL einer Datei und ihrem PATH
Ihr httdoc (oder public_html) root ist / var / www / osbs / PHPAPI
Aber Ihr Dateisystem root ist /
Probieren Sie
aus %Vor%Es gibt viele schlechte Praktiken in Ihrem Code
'file_exists' und einige andere Dateiaufrufe wie fstat werden von php zwischengespeichert. Dies ist im Handbuch für file_exists dokumentiert. Ihr erster Anruf, wenn die Datei nicht existiert, wird gespeichert und in nachfolgenden Aufrufen zurückgegeben. Verwenden Sie 'clearstatcache ()' zwischen den Aufrufen, um den Cache zu löschen.
Ein "kleines" Refactoring:
Warum file_put_contents () wenn Sie tatsächlich kopieren möchten ()
%Vor%Tags und Links php if-statement get while-loop