Hallo,
Versuche mit gerade an einem eigenen Datei Upload.
public function saveFormAction() {
$newPDFPath = 'user_upload/User_Dateien/'.$GLOBALS['TSFE']->fe_user->user['username'].'/';
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($_FILES);
//var_Dump($_FILES['tx_usercontrol_user_control_usercreatetext']['name']['formpdf'][0]);
var_Dump($_FILES['tx_usercontrol_user_control_usercreatetext']['type']['formpdf'][0] == 'application/pdf');
var_Dump($_FILES['tx_usercontrol_user_control_usercreatetext']['name']['formpdf'][0] and $_FILES['tx_usercontrol_user_control_usercreatetext']['type']['formpdf'][0] == 'application/pdf');
if ($_FILES['tx_usercontrol_user_control_usercreatetext']['name']['formpdf'][0] and $_FILES['tx_usercontrol_user_control_usercreatetext']['type']['formpdf'][0] == 'application/pdf') {
//be careful - you should validate the file type! This is not included here
$tmpName = $_FILES['tx_usercontrol_user_control_usercreatetext']['name']['formpdf'][0];
$tmpFile = $_FILES['tx_usercontrol_user_control_usercreatetext']['tmp_name']['formpdf'][0];
$storageRepository = $this->objectManager->get('TYPO3\\CMS\\Core\\Resource\\StorageRepository');
$storage = $storageRepository->findByUid('1'); //this is the fileadmin storage
//build the new storage folder
if(!$storage->hasFolder($newPDFPath)){
$targetFolder = $storage->createFolder($newPDFPath);
}
else {
$targetFolder = $storage->getFolder($newPDFPath); //getFolder steht zwar nicht in der API, Funktioniert aber im Gegenzug zu anderen Methoden, die in der API stehen. :/
}
$newFileName = $tmpName;
$Path=$newPDFPath.$tmpName;
var_Dump($storage->hasFile($Path));
var_Dump($tmpFile);
$movedNewFile = $storage->addFile($tmpFile, $targetFolder, $newFileName);
}
Nunja, eine Datei mit Namen: „Ich bin eine Datei.pdf“
Wird zu: „ich_bin_eine_datei.pdf“
Des Weiteren erzeugt die Methode addFile Kopien einer Datei, wenn der Name bereits Existiert.
„ich_bin_eine_datei01.pdf“ usw…
Wie bekomme ich ihn jetzt dazu, die Datei Richtig zu benennen, und statt eine Kopie anzulegen einen Error ausgibt?
hasFile Funktioniert leider nicht, da die Datei im Ordner ja anderes heißt, und wenn er anfängt kopieren anzulegen findet er natürlich nichts mehr, und gibt einfach FALSE zurück…
Die API Doku ist fast nicht zu gebrauchen, in der Doku steht return Folder, es wird aber ein String zurückgegen, genauso wenn Parameter String dasteht, will er einen Folder, usw. Die Beschreibung von addFile will 3 x String, wenn ich ihr aber 3 Strings gebe, meckert er, das er einen Folder möchte…usw..
https://api.typo3.org/typo3cms/7/html/class_t_y_p_o3_1_1_c_m_s_1_1_core_1_1_resource_1_1_folder.html
Ich Orientiere mich nach dieser Anleitung:
http://t3-developer.com/1/ext-programmierung/techniken-in-extensions/fal-dateiupload-im-frontend/
//build the new storage folder
$targetFolder = $storage->createFolder($newImagePath);
Ist zwar eine schöne Methode, leider liefert sie Oops, an Error usw, wenn der Order bereits existiert… Hat sich hier so viel geändert an der Classe?
Hoffentlich habt ihr noch eine Idee.
Schon mal Danke für eine Antwort
Mfg
Power-Poler