2017-03-07 7 views
1

Ich bin so nah. Ich versuche, ein Formular zu erstellen, die eine Datei auf meine Dropbox hochladen, und ich kann es hier mit dem Code unter Verwendung einer Datei auf dem Server zu arbeiten:Datei Upload zu Dropbox von FORM mit PHP

$path = 'render.png'; 
$fp = fopen($path, 'rb'); 
ch = curl_init('https://content.dropboxapi.com/2/files/upload'); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_PUT, true); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
curl_setopt($ch, CURLOPT_INFILE, $fp); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($ch);curl_close($ch); 
echo $response; 

Ich war sicher, dass dies funktionieren würde, aber nee .....

$fp = fopen($_FILES['file'], 'rb'); 

Wer hat eine schnelle Lösung dafür?

+0

Haben Sie autorisiert? – RiggsFolly

+0

Ja, ich habe anderen Code mit den Headern. Der Code oben funktioniert, es wird die Datei 'render.png' hochgeladen. Das Problem besteht darin, dass die Datei aus dem Formular $ _FILES ['Datei'] funktioniert. Ich bekomme eine leere Datei auf dem Server. –

+0

Wie lautet der Name der Eingabe für die Datei in Ihrem HTML – RiggsFolly

Antwort

1

Das ist Ihr Problem

$fp = fopen($_FILES['file'], 'rb'); 

Sie den tmp_name Bereich von $ _FILES verwenden müssen, um so, dass die Position der temporären Datei, die PHP-Stellen im Temp-Ordner ist.

$fp = fopen($_FILES['fred']['tmp_name'], 'rb'); 

Wo 'fred' den Wert des name Attribut ist in

<input type="file" name="fred".....` 
        ^^^^^^^^^^^ 
+0

Danke! Ich wusste, dass ich etwas wirklich Einfaches vermisste. –