2016-06-24 10 views
1

ein Formular testen Der Versuch, die Bild-Uploads tut und hat ein paar versteckte Felder, die wie folgt aussieht:Wie eine mehrteilige Form mit Goutte einreichen/Guzzle

<form class="add" action="https://example.com/stSPyOCwDVg" method="post" enctype="multipart/form-data"> 
    <input type="hidden" name="tokenCode" value="U2FsdGVkX18zMTY1MjMxNuUCJfrsNa-cT0yap3xGbgrDN6RkCLpTbOm8JLusrW1vGGQxqAdYYdE"> 
    <input type="file" name="file" multiple> 
    <button class="addbtn" type="submit" name="go">add image</button> 
</form> 

wurde auf Nicht-mehrteiliger Formulare ein vorlegen ähnlich erwartet aber das ist nicht der Fall. Stattdessen versuchen Sie einen POST wie folgt:

Dies gibt nur das ursprüngliche Formular zurück und keine Dateien werden hochgeladen. Weiß jemand, ob dies korrekt aufgerufen wird?

Antwort

0

Dies kann nicht die ideale ige Lösung sein, aber das funktioniert tatsächlich:

$form = $crawler->selectButton('add image')->form(); 
$files = ['/tmp/UL_img1', '/tmp/UL_img2', '/tmp/UL_img3'] 
foreach($files as $file) { 
    $form['file'] = $tmpfname; // this was key 
    $browser = $client->submit($form); 
} 

Grundsätzlich ist der Dateiname kann auf ‚Datei‘ Eingang zugeordnet werden. Auf diese Weise müssen wir uns nicht um die korrekte POST-URL kümmern. Versteckte Attribute/cookeis werden mit der Anfrage gesendet.

Mehrere Dateien in der gleichen Anfrage funktioniert noch nicht. Werde Dich auf dem Laufenden halten.

Verwandte Themen