2016-03-21 5 views
0

Auf einer Website, die ich erstelle, verwenden wir Wufoo-Formulare, um Daten zu zentralisieren. Also habe ich eine triviale Form, die ich Wufoo mit ihrer Rest-API übermitteln muss.Datei kann nicht mit ihrer REST-API nach Wufoo hochgeladen werden

Ich habe alles entsprechend ihrer Dokumentation, aber ich bekomme immer noch einen Fehler beim Senden der POST-Anfrage an ihren Endpunkt.

Dies ist, wie meine Anfrage wie folgt aussieht:

$ref = curl_init('https://{domain}.wufoo.com/api/v3/forms/' . WUFOO_FORM_HASH . '/entries.json'); 
curl_setopt($ref, CURLOPT_HTTPHEADER, array('Content-type: multipart/form-data')); 
curl_setopt($ref, CURLOPT_POST, true); 
curl_setopt($ref, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ref, CURLOPT_POSTFIELDS, $_formData); 
curl_setopt($ref, CURLOPT_USERPWD, WUFOO_API_KEY . ':X'); 
curl_setopt($ref, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
curl_setopt($ref, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($ref, CURLOPT_SSL_VERIFYHOST, true); 
curl_setopt($ref, CURLOPT_FOLLOWLOCATION, true); 
$result = json_decode(curl_exec($ref), true); 

Und das ist das $ _formData Array:

Array 
(
    [Field4] => firstname 
    [Field3] => lastname 
    [Field5] => [email protected] 
    [Field110] => @/var/tmp/random_name/test.txt 
) 

Jedes Mal, wenn ich eine Datei auf die Anforderung in Field110 befestigen, schlägt die Anforderung fehl mit dieser als Fehler:

Array 
(
    [Success] => 0 
    [ErrorText] => Errors have been <b>highlighted</b> below. 
    [FieldErrors] => Array 
     (
      [0] => Array 
       (
        [ID] => Field110 
        [ErrorText] => This file was NOT successfully uploaded. Please try again. 
       ) 

     ) 

) 

Wer hat dieses Problem vorher und kennt irgendwelche Lösungen? Ich muss erwähnen, dass ich die Wufoo Rest API verwenden muss, um dies zu übermitteln.

+0

[Hier ist die Dokumentation, über die ich in der Frage gesprochen habe.] (Http://help.wufoo.com/articles/en_US/SurveyMonkeyArticleType/API-Examples) – Mircea

Antwort

0

Laut der Fehlermeldung wurde die Datei nicht ordnungsgemäß erfolgreich hochgeladen. Dies bedeutet, dass ein Problem mit dem Pfad, der Größe oder dem Typ der Datei besteht.

Die maximale Größe für eine Datei beträgt 10 MB und für alle Felder in einem Formular sind 20 MB kombiniert.

Warum nicht Sie die Wufoo API PHP Wrapper verwenden es unter anderem ermöglicht, Dateien zu schreiben Einträge mit ....

+0

** Wufoo API PHP Wrapper ** hat [bekanntes Problem] (https://github.com/wufoo/Wufoo-PHP-API-Wrapper/issues/9) mit dem Hochladen von Dateien. Sie haben eine ziemlich gute Pull-Anfrage, aber aus irgendeinem Grund ist sie noch nicht zusammengeführt. – FreeLightman

1

Der Wert für [Field110] sollte ein ROTATION Dateiobjekt sein.

fand ich eine Lösung auf Github (https://github.com/wufoo/Wufoo-PHP-API-Wrapper/pull/10/commits/094d64436cee405739f5b39bc28f745afed65eb3), die die folgende Zeile enthält:

$curl_file = curl_file_create($this->value, mime_content_type($this->value), pathinfo($this->value, PATHINFO_BASENAME));

Sie könnten $this->value ersetzen müssen, so stellen Sie sicher, dass es den Wert /var/tmp/random_name/test.txt und übergeben $curl_file-[Field110] bekommt.

Wenn Sie eine andere Illustration sehen möchten, habe ich dies in einem WordPress-Plugin implementiert: https://github.com/friendofdog/better_wfi_wordpress/blob/master/front/post-intermediary.php. Schau dir Zeile 77 an.

Verwandte Themen