2016-03-21 24 views
0

Oluşturduğum bir web sitesinde, verileri merkezileştirmek için Wufoo formları kullanıyoruz. Öyleyse, geri kalanlarını kullanarak Wufoo'ya göndermem gereken önemsiz bir formum var.WUSToo'yu REST API'lerini kullanarak dosya yüklenemiyor

Herşeyi belgelerine göre yaptım, ancak POST isteğini son noktalarına gönderirken hala hata alıyorum.

$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); 

Ve bu $ _formData dizidir: ricam nasıl göründüğünü

budur ben Field110 isteğe dosya eklemek zaman

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

, istek bu başarısız olur bir hata olarak:

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. 
       ) 

     ) 

) 

Bu sorunu daha önce herkes anladı ve herhangi bir çözümü biliyor mu? Bunu göndermek için Wufoo dinlenme API'sini kullanmam gerektiğini söylemeliyim.

+0

[İşte soruda bahsettiğim belgeler.] (Http://help.wufoo.com/articles/en_US/SurveyMonkeyArticleType/API-Örnekler) – Mircea

cevap

0

Hata iletisine göre dosya düzgün şekilde başarıyla yüklenemedi. Anlamı, dosyanın yolu, boyutu veya türü ile ilgili bir sorun var.

Bir dosya için maksimum boyut 10 MB'tır ve tek bir formdaki tüm alanlar için 20 MB'tır.

Neden

+0

** Wufoo API PHP Wrapper ** dosya yükleme ile [bilinen sorun] (https://github.com/wufoo/Wufoo-PHP-API-Wrapper/issues/9) var. Oldukça iyi bir çekme isteği var, ama nedense henüz birleştirilmiş değil. – FreeLightman

1

[Field110] değeri bir CURL dosya nesne olmalıdır .... bunu dosyalarla girdiler göndermek diğer şeyler arasında izin verir Wufoo API PHP Wrapper kullanmayın.

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

Sen sahip olabilir sadece değerini /var/tmp/random_name/test.txt aldığından emin, $this->value değiştirip [Field110] için $curl_file geçmek:

Ben aşağıdaki satırı içeren Github bir çözüm ( https://github.com/wufoo/Wufoo-PHP-API-Wrapper/pull/10/commits/094d64436cee405739f5b39bc28f745afed65eb3), buldum.

Başka bir örnek görmek isterseniz, bunu bir WordPress eklentisinde uygulamıştım: https://github.com/friendofdog/better_wfi_wordpress/blob/master/front/post-intermediary.php. Çizginin çevresine bakın 77.

İlgili konular