[TYPO3-german] Fluid/Extbase: Wie kann ein Benutzer ein Bild hochladen?

Jost Baron Jost.Baron at gmx.de
Fri Jul 20 12:44:46 CEST 2012


Hi Robert,

die temporäre Datei wird natürlich gelöscht, wenn der TYPO3-Request 
abgearbeitet ist, du findest also hinterher manuell nichts mehr im 
xampp/tmp-Verzeichnis.

f:debug in Fluid funktioniert z.B. mit {variable -> f:debug()}, wobei du 
deinem View natürlich die Variable "variable" irgendwann zugewiesen 
haben muss.

Hast du vielleicht am Ende deiner updateAction ein redirect eingebaut? 
Dann ist jegliche Variablenzuweisung an den view hinterher natürlich weg 
(es wird ja ein ganz neuer Request gestartet). Du könntest das redirect 
aber auskommentieren und ein neues Template für die Update-Action 
anlegen, das nur debug-Zwecken dient.

Am 7/20/2012 12:03 PM, schrieb Robert Schneider:
> Hi Jost,
>
> das mit dem property-Attribut hilft schon etwas weiter. Das mit debug im
> Fluid klappt bei mir überhaupt nicht (übrigens T3-Version 4.7.1), da
> kann ich nicht einmal einen String ausgeben lassen.
>
> Was ein Problem in der Debug-Ausgabe mit t3lib_utility_Debug::debug ist,
> habe ich nun herausgefunden: Scheinbar wird die ganze Ausgabe gleich
> ganz unterbunden, wenn Sonderzeichen vorkommen. Denn, wenn ich einen
> String mit urlencode umwandle, dann geht's. So bin ich nun darauf
> gekommen, dass mir
>
> t3lib_utility_Debug::debug(">>>" .
> urlencode($_FILES['tx_psa_user_psapsadatamanager']['tmp_name']['userFileUploadForm']['filename']));
>
>
> diese Ausgabe liefert: 'C%3A%5Cxampp%5Ctmp%5Cphp14FF.tmp'.
> Übersetzt heißt das: 'C:\xampp\tmp\php14FF.tmp'.
>
> Blöd, dass da debug so komisch funktioniert. Warum wandelt es nicht
> selbst in darstellbare Zeichen um?
>
> Naja, und
>
> t3lib_utility_Debug::debug(urlencode($_FILES['tx_psa_user_psapsadatamanager']['error']['userFileUploadForm']['filename']));
>
>
> liefert mir 0. Also kein Fehler. Und eine Dateigröße ist auch vorhanden
> (12 Bytes).
>
> Da bin ich ja jetzt schon mal einen Schritt weiter. Nur: Die Datei ist
> leider nicht da.
>
> Habe mir die php.ini angeschaut. file_uploads ist auf 'On' gesetzt. Das
> sollte also nicht das Problem sein. Mache das übrigens alles lokal. Ich
> glaube, das Problem hat aber jetzt nichts mehr mit Typo3 zu tun.
>
> Muss noch schauen.
>
> Danke dir nochmal soweit, Jost. Das hat mir schon geholfen. Und das mit
> dem weiteren Prozedere ist wahrscheinlich auch hilfreich. Aber dazu
> komme ich erst noch.
>
> Gruß und schönes WE.
> Robert
>
>
>
>
> Am 20.07.2012 09:55, schrieb Jost Baron:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Hi Robert,
>>
>> Hast du mal probiert, das Array
>> $_FILE['tx_psa_user_psapsadatamanager'] nach dem Upload an Fluid zu
>> übergeben und mit f:debug auszugeben? Da kriegt man eine ziemlich gute
>> Debug-Ausgabe, vielleicht findest du dort den Grund.
>>
>> Un ein Schuss ins Blaue: Was passiert, wenn du im Fluid-Template statt
>> name="filename" den Wert property="filename" setzt? Dann müssten die
>> Daten über
>>
>> $_FILES['tx_psa_user_psapsadatamanager']['name']['userFileUploadForm']['filename']
>>
>>
>> erreichbar sein.
>>
>> Gruß Jost
>>
>> On 07/19/2012 03:59 PM, Robert Schneider wrote:
>>> Ich hoffe, mir kann nochmal wer helfen.
>>>
>>> Mein Fluid-Template sieht so aus:
>>>
>>> <f:form action="update" enctype="multipart/form-data"
>>> name="userFileUploadForm" method="post"> <f:form.upload
>>> name="filename"/> <f:form.submit value="Start"/> </f:form>
>>>
>>>
>>> Und in der Action greife ich nun zum Debuggen mal so darauf zu:
>>>
>>> t3lib_utility_Debug::debug(
>>> $_FILES['tx_psa_user_psapsadatamanager']['name']['filename']);
>>>
>>> Da sehe ich immerhin schon, dass der richtige Dateiname vorhanden
>>> ist. Auch die Größe der Datei kann ich mir ausgeben lassen.
>>> tmp_name macht aber Probleme:
>>>
>>>
>>> t3lib_utility_Debug::debug(
>>> $_FILES['tx_psa_user_psapsadatamanager']['tmp_name']['filename']);
>>>
>>> lässt nicht einmal die Debugausgabe erscheinen. Wenn ich
>>>
>>> t3lib_utility_Debug::debug(
>>> array_keys($_FILES['tx_psa_user_psapsadatamanager']['tmp_name']));
>>>
>>> mache, dann wird mir zwar der key 'filename:' angezeigt, aber
>>> irgendwie ist da nichts drin - NULL ist es aber auch nicht. print_r
>>> auf $_FILES['tx_psa_user_psapsadatamanager']['tmp_name'] erzeugt
>>> auch keine Debug-Ausgabe.
>>>
>>> Was ist da los, was mache ich falsch?
>>>
>>>
>>> Am 19.07.2012 11:58, schrieb Robert Schneider:
>>>> Dank dir, Jost.
>>>>
>>>> Das mit dem Dateiverschieben, wird man wohl auch brauchen.
>>>> Derzeit stecke ich aber schon am Controller und im Fluid fest.
>>>> Wie muss das denn genau ausschauen? Braucht man da das
>>>> object-Attribut im form-Element? Falls ja, muss ich das mit
>>>> $this->view->assign mit etwas befüllen?
>>>>
>>>>> Den Namen der Datei im temporären Verzeichnis findest du in
>>>>> der
>>>> Variablen
>>>>> $_FILES['tx_extkey_pluginkey']['tmp_name'][...]['datei'],
>>>>
>>>> Meinst du mit'datei' den Namen, den ich in Fluid auch angebe?
>>>> Kann es dann eigentlich Probleme geben, wenn das zwei Benutzer
>>>> ungefähr gleichzeitig machen (was in meinem Fall nicht der Fall
>>>> sein wird)?
>>>>
>>>> Gruß, Robert
>>>>
>>>>
>>>> Am 19.07.2012 10:36, schrieb Jost Baron:
>>> Hi Robert,
>>>
>>> an der Stelle ist es - meines Wissens nach - zuende mit der Magie
>>> von extbase und fluid. Die Datei landet im temporären Verzeichnis,
>>> und muss dann manuell von dort in das Upload-Verzeichnis kopiert
>>> werden.
>>>
>>> Den Namen der Datei im temporären Verzeichnis findest du in der
>>> Variablen
>>> $_FILES['tx_extkey_pluginkey']['tmp_name'][...]['datei'],
>>>
>>> den Namen der hochgeladenen Datei in
>>> $_FILES['tx_extkey_pluginkey']['name'][...]['datei']
>>>
>>> [...] steht dabei für den Pfad zu der property, die dem
>>> Upload-Feld gegeben wurde. Wenn das Uploadfeld also z.B. Namen
>>> tx_extkey[foo][bar][datei] hat, ist der Dateiname in
>>>
>>> $_FILES['tx_extkey_pluginkey']['tmp_name']['foo']['bar']['datei']
>>>
>>> drin. Mit den beiden Informationen kannst du dann die Datei dahin
>>> verschieben wo du Lust hast, einen Service zu diesem Zweck (sicher
>>> optimierbar) findest du hier:
>>>
>>> http://pastebin.com/kCRxj7du
>>>
>>>
>>> Eventuell gibt es sowas aber auch schon in der
>>> community-Extension, vielleicht lohnt sich auch ein Blick dort
>>> hinein.
>>>
>>> Gruß Jost
>>>
>>> On 07/19/2012 10:17 AM, Robert Schneider wrote:
>>>>>>> Hi! Dies ist mein erstes Posting in der Newsgroup. Bin
>>>>>>> gespannt, wie das hier mit der Hilfe klappt. Darauf bin ich
>>>>>>> noch sehr angewiesen.
>>>>>>>
>>>>>>> Also, mein Problem: Ich würde gerne einen Benutzer im
>>>>>>> Backend eine CSV-Datei hochladen lassen, die dann
>>>>>>> weiterverarbeitet werden soll. Aber wie schaffe ich das?
>>>>>>> Hat vielleicht wer ein einfaches aber vollständiges
>>>>>>> Beispiel dazu? Es zermürbt mich schon sehr, dass ich das
>>>>>>> nicht selbst herauffinden kann. Was ich unter
>>>>>>> http://typo3blogger.de/extbase-file-upload/ gefunden habe,
>>>>>>> hilft mir auch nicht so richtig weiter. Wo würden
>>>>>>> hochgeladene Dateien eigentlich landen - im
>>>>>>> uploads-Ordner?
>>>>>>>
>>>>>>> Kann mir wer helfen?
>>>>>>>
>>>>>>> Danke und Gruß, Robert
>>>>>>> _______________________________________________
>>>>>>> TYPO3-german mailing list TYPO3-german at lists.typo3.org
>>>>>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>>>>>
>>>>
>>>>
>>>
>>>>>>>
>>>
>>> _______________________________________________ TYPO3-german
>>> mailing list TYPO3-german at lists.typo3.org
>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.11 (GNU/Linux)
>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>>
>> iQIcBAEBAgAGBQJQCQ8GAAoJEG6HPMAgWtVzaR4P+wV6oMmjdrL0Xb2ZbRxPArmx
>> pHsF1/2Lo8OppgXLWLy8LmCx5mxnr27uWcs4Z1lBlCJfhi4q7jk8hVOumxFTYBAd
>> HNkNw9pO8GE872jLQT3JSdP+9sUfhciPzBUGA+CzXGLVSNwJDoeNxHAUUMln4tMB
>> RTeWGo/+6z1284mtxeyYCtTAP6DzGoEPFQW92RdHAzIeJM7SZWzW4ZPdINDOqA4q
>> kec4zv6qHZb7WdPnyMRLdIMQmAiYFG7ui9liHV5+Yo31LRdrQTwhtqP6IKrlEb5M
>> zfcaO5xDegaFZPlRbaU9oMgiNPlrjg77EhEGZB95BBxrfMKyLkQiLqFO6T/TYENp
>> DoPN6+JxkOn9BqPWeFl59ksNPANYQbXzF3+3rZGsduRJr3qmza0gelmJGl4u9Us6
>> T48/A4XokOSjciDP6cBBnee2lC2eUy2mQ0m3bKA7jXsdITTuqQh2KaSRd9WFxWSv
>> ymbBLdn4QjFOYTF68kJFEj/+3oTVuo035UyvVM6bWultJQdq9fUM6E83varGq24B
>> c3PCUKsSxu8i8Xbl3nk3lM5JM1axfxBQcmxaK/slMTPHS0RIzjAwET6EnITgMAT6
>> 4LxzipYXcFnNWysb+mk4NPhJ+6k1UmVeu0tbg0EuUfFEqQlUFfGQU7JFjw2m+qCj
>> STtYogkt4pexC7oVu0Eh
>> =WpNZ
>> -----END PGP SIGNATURE-----
>>
>
>
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german




More information about the TYPO3-german mailing list