08. Jun 2010
Dieser Artikel beschreibt, wie Sie ein eigenes Upload-Formular erstellen können.
Ab der Version 005.048.011.000 können Sie über das PHP-Framework nicht nur Daten lesen, sondern auch schreiben. Ich zeige Ihnen in diesem Artikel, wie Sie mit Hilfe des Formulargenerators Besuchern erlauben können, Dateien hochzuladen und einen Titel zu vergeben.
if(wRequest::getParameter("wFormAction") == "reset"){ $this->reset(); wResponse::redirect($this->url); } $this->setFormData(wRequest::getParameters()); if($this->validate()){ //Datei file_1 hochladen, einchecken und Titel vergeben $fileData = $_FILES['file_1']; $pathDest = "/public/uploads/".date('Y-m-d-H-i-s')."-".rand(1000, 9999)."-".$fileData["name"]; @move_uploaded_file($fileData["tmp_name"], $_SERVER["DOCUMENT_ROOT"].$pathDest); wRepository::checkInDocument($pathDest); wDocumentData::setData($pathDest, 'title', $this->elements["title_1"]->getValue()); $this->initFormData(); $this->setStatus("sent"); if($this->getVar("redirectSuccess") == ""){ wResponse::redirect($this->url); } else{ wResponse::redirect($this->getVar("redirectSuccess")); } } else{ $this->setStatus("failed"); wResponse::redirect($this->url); }
Anstatt ein E-Mail zu verschicken, wird beim Absenden des Formulars ein dynamischer Pfad generiert, wo dann die hochgeladene Datei file_1 über move_uploaded_file hinkopiert wird. Sobald die Datei abliegt, wird sie über wRepository::checkInDocument eingecheckt. Anschließend wird der im Feld title_1 eingetragene Wert als Titel über wDocumentData::setData eingetragen.