The following code creates two folders, one with the $folderName
and one with the $date
with the files uploaded. If I change the $folderName
to something static like “uploadingFolder” it creates the folder with the files uploaded.
How can I get the naming convention for the folder I want uploaded with its contents: firstname lastname date.
$formdata = json_decode(file_get_contents("php://input"),true); $fname = array_column($formdata, 'firstname'); $lname = array_column($formdata, 'lastname'); $date = date('d-m-Y'); $folderName = $fname[0].$lname[0].$date; //$folderName = "uploadingFolder"; mkdir('uploads/'.$folderName, 0777, true); $total = count($_FILES['files']['name']); for( $i=0 ; $i < $total ; $i++ ) { $tmpFilePath = $_FILES['files']['tmp_name'][$i]; $newFilePath = "uploads/".$folderName."/".$_FILES['files']['name'][$i]; if(move_uploaded_file($tmpFilePath, $newFilePath)){ echo "upload successful "; } else { echo "error uploading files "; } }
Sample of json
$sampledata = '{"step":3,"form":{"firstname":"Jackie","lastname":"Hamer","address":"#45 test street","phone":"8681234567","email":"jackie@gmail.com","id":"a0e4c2c2g6c2b1g6","passport":"4545454787T","country":"Grenada","date":"2020-06-13","rdate":"2020-06-11","hotel":"True Blue Bay","package":"10","payment":"10","pfirstname":"Jamie","plastname":"Grant","atravellerfirstname":"Jackie","atravellerlastname":"Browne","refereefname":"Jamie","refereelname":"Lester","refereeaddress":"#45 Test","refereephone":"8684567894","refereefname2":"Jamie","refereelname2":"Louis","refereeaddress2":"#45 Test","refereephone2":"8687878787","formfiles":[]},"countries":[{"Country":"Grenada","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591657087,"_created":1591657074,"_id":"5edec27264396144390000cd"},{"Country":"Barbados","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591657105,"_created":1591657105,"_id":"5edec2913763637d1700010f"},{"Country":"St. Lucia","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591657142,"_created":1591657142,"_id":"5edec2b6303466c0d0000254"},{"Country":"Curacao","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591720520,"_created":1591720483,"_id":"5edfba233336352eef0002f9"},{"Country":"Panama","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591720527,"_created":1591720527,"_id":"5edfba4f363331fc08000133"},{"Country":"Cancun","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591720558,"_created":1591720558,"_id":"5edfba6e38353443d10002c6"}],"hotels":[{"HotelName":"True Blue Bay","URL":"https://www.truebluebay.com/","Country":["Grenada"],"Image":{"path":"storage/uploads\truebluebay.jpg"},"_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591720577,"_created":1589575617,"_id":"5ebeffc134306446460002b9","TestCountry":null}],"selectValue":"Grenada","files":[{},{},{},{},{},{}],"disabled":false,"sumbitted":false,"submitted":true}';
Advertisement
Answer
Like this;
<?php $formdata = json_decode(file_get_contents("php://input"), true); $fname = $formdata['form']['firstname']; $lname = $formdata['form']['lastname']; $date = date('d-m-Y'); $folderName = $fname.' '.$lname.' '.$date; // Added spaces between for ya. Would recommend to do it like [YYYY-MM-DD Lastname Firstname] though mkdir('uploads/'.$folderName, 0777, true); $total = count($_FILES['files']['name']); for( $i=0 ; $i < $total ; $i++ ) { $tmpFilePath = $_FILES['files']['tmp_name'][$i]; $newFilePath = "uploads/".$folderName."/".$_FILES['files']['name'][$i]; if(move_uploaded_file($tmpFilePath, $newFilePath)){ echo "upload successful "; } else { echo "error uploading files "; } }
I did an test on this;
<?php $sampledata = '{"step":3,"form":{"firstname":"Jackie","lastname":"Hamer","address":"#45 test street","phone":"8681234567","email":"jackie@gmail.com","id":"a0e4c2c2g6c2b1g6","passport":"4545454787T","country":"Grenada","date":"2020-06-13","rdate":"2020-06-11","hotel":"True Blue Bay","package":"10","payment":"10","pfirstname":"Jamie","plastname":"Grant","atravellerfirstname":"Jackie","atravellerlastname":"Browne","refereefname":"Jamie","refereelname":"Lester","refereeaddress":"#45 Test","refereephone":"8684567894","refereefname2":"Jamie","refereelname2":"Louis","refereeaddress2":"#45 Test","refereephone2":"8687878787","formfiles":[]},"countries":[{"Country":"Grenada","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591657087,"_created":1591657074,"_id":"5edec27264396144390000cd"},{"Country":"Barbados","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591657105,"_created":1591657105,"_id":"5edec2913763637d1700010f"},{"Country":"St. Lucia","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591657142,"_created":1591657142,"_id":"5edec2b6303466c0d0000254"},{"Country":"Curacao","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591720520,"_created":1591720483,"_id":"5edfba233336352eef0002f9"},{"Country":"Panama","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591720527,"_created":1591720527,"_id":"5edfba4f363331fc08000133"},{"Country":"Cancun","_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591720558,"_created":1591720558,"_id":"5edfba6e38353443d10002c6"}],"hotels":[{"HotelName":"True Blue Bay","URL":"https://www.truebluebay.com/","Country":["Grenada"],"Image":{"path":"storage/uploads\truebluebay.jpg"},"_mby":"5ebef4733964375a880000ca","_by":"5ebef4733964375a880000ca","_modified":1591720577,"_created":1589575617,"_id":"5ebeffc134306446460002b9","TestCountry":null}],"selectValue":"Grenada","files":[{},{},{},{},{},{}],"disabled":false,"sumbitted":false,"submitted":true}'; $formdata = json_decode($sampledata, true); $fname = $formdata['form']['firstname']; $lname = $formdata['form']['lastname']; $date = date('d-m-Y'); $folderName = $fname.' '.$lname.' '.$date; var_dump($folderName); // string(23) "Jackie Hamer 16-06-2020"
Extra important note: Be sure no illegal chars for folders exists in the first or lastname ! You should strip or replace illegal special chars!