<?php $path; // Path from root that user specifies $extensions; // allow file extensions $ext_array = explode(',', $extensions); // Create path $basepath = $modx->config['base_path']; // Site root $target_path = $basepath . $path; // root /assets/upload //$target_path = '/home/emeraldfound/emeraldfoundation.ca/assets/uploads/'; // Get Filename and make sure its good. $filename = basename( $_FILES['nomination_file']['name'] ); // Get files extension $ext = pathinfo($filename, PATHINFO_EXTENSION); if($filename != '') { // Make filename a good unique filename. // Make lowercase $filename = mb_strtolower($filename); // Replace spaces with _ $filename = str_replace(' ', '_', $filename); // Add timestamp $filename = date("Ymdgi") . $filename; // Set final path $target_path = $target_path . $filename; if(in_array($ext, $ext_array)) { if(move_uploaded_file($_FILES['nomination_file']['tmp_name'], $target_path)) { // Upload successful //$hook->setValue('nomination_file',$_FILES['nomination_file']['name']); $hook->setValue('nomination_file',$filename); return true; } else { // File not uploaded $errorMsg = 'File not uploaded.'; $hook->addError('nomination_file',$errorMsg); return false; } } else { // File type not allowed $errorMsg = 'File not allowed.'; $hook->addError('nomination_file',$errorMsg); return false; } } else { $hook->setValue('nomination_file',''); return true; } return true; ?>
<div class="row clearfix"> <div class="label">Supplementary Files <br /><span class="error">[[+fi.error.nomination_file]]</span></div> <!-- end of .label --> <div class="input"><input id="nomination_file" name="nomination_file" type="file" value="[[+fi.nomination_file]]" maxlength="100000" /></div> <!-- end of .input --> </div> <!-- end of .row -->
&path = `assets/uploads/` &extensions = `jpg,JPG,jpeg,JPEG,doc,docx,pdf,txt,png,zip,mov,avi,mpeg,mp4` &maxsize = `20971520`
&hooks=`spam,formit2file,formit2resource,email,FormItAutoResponder,redirect`
<?php // initialize output; $output = true; // valid extensions $ext_array = array('pdf', 'txt', 'doc', 'docx', 'rtf'); // create unique path for this form submission $uploadpath = 'assets/uploads/'; // you can create some logic to automatically // generate some type of folder structure here. // the path that you specify will automatically // be created by the script if it doesn't already // exist. // EXAMPLE: // this would put all file uploads into a new, // unique folder every day. // $uploadpath = 'assets/'uploads/'.date('Y-m-d').'/'; // get full path to unique folder $target_path = $modx->config['base_path'] . $uploadpath; // get uploaded file names: $submittedfiles = array_keys($_FILES); // loop through files foreach ($submittedfiles as $sf) { // Get Filename and make sure its good. $filename = basename( $_FILES[$sf]['name'] ); // Get file's extension $ext = pathinfo($filename, PATHINFO_EXTENSION); $ext = mb_strtolower($ext); // case insensitive // is the file name empty (no file uploaded) if($filename != '') { // is this the right type of file? if(in_array($ext, $ext_array)) { // clean up file name and make unique $filename = mb_strtolower($filename); // to lowercase $filename = str_replace(' ', '_', $filename); // spaces to underscores $filename = date("Y-m-d_G-i-s_") . $filename; // add date & time // full path to new file $myTarget = $target_path . $filename; // create directory to move file into if it doesn't exist mkdir($target_path, 0755, true); // is the file moved to the proper folder successfully? if(move_uploaded_file($_FILES[$sf]['tmp_name'], $myTarget)) { // set a new placeholder with the new full path (if you need it in subsequent hooks) $modx->setPlaceholder('fi.'.$sf.'_new', $myTarget); // set the permissions on the file if (!chmod($myTarget, 0644)) { /*some debug function*/ } } else { // File not uploaded $errorMsg = 'There was a problem uploading the file.'; $hook->addError($sf, $errorMsg); $output = false; // generate submission error } } else { // File type not allowed $errorMsg = 'Type of file not allowed.'; $hook->addError($sf, $errorMsg); $output = false; // generate submission error } // if no file, don't error, but return blank } else { $hook->setValue($sf, ''); } } return $output; ?>
<?php // initialize output; $output = true; // get the current user name to create the file name as $userName = $modx->user->get('username'); // valid extensions $ext_array = array('pdf', 'txt', 'doc', 'docx', 'rtf', 'jpg'); // create unique path for this form submission $uploadpath = 'assets/uploads/'; // you can create some logic to automatically // generate some type of folder structure here. // the path that you specify will automatically // be created by the script if it doesn't already // exist. // EXAMPLE: // this would put all file uploads into a new, // unique folder every day. // $uploadpath = 'assets/'uploads/'.date('Y-m-d').'/'; // get full path to unique folder $target_path = $modx->config['base_path'] . $uploadpath; // get uploaded file names: $submittedfiles = array_keys($_FILES); // loop through files foreach ($submittedfiles as $sf) { // Get Filename and make sure its good. $filename = basename( $_FILES[$sf]['name'] ); // Get file's extension $ext = pathinfo($filename, PATHINFO_EXTENSION); $ext = mb_strtolower($ext); // case insensitive // is the file name empty (no file uploaded) if($filename != '') { // is this the right type of file? if(in_array($ext, $ext_array)) { //create file called the user name + pic $filename = $userName . "pic".'.'.$ext ; // full path to new file $myTarget = $target_path . $filename; // create directory to move file into if it doesn't exist mkdir($target_path, 0755, true); // is the file moved to the proper folder successfully? if(move_uploaded_file($_FILES[$sf]['tmp_name'], $myTarget)) { // set a new placeholder with the new full path (if you need it in subsequent hooks) $modx->setPlaceholder('fi.'.$sf.'_new', $myTarget); // set the permissions on the file if (!chmod($myTarget, 0644)) { /*some debug function*/ } } else { // File not uploaded $errorMsg = 'There was a problem uploading the file.'; $hook->addError($sf, $errorMsg); $output = false; // generate submission error } } else { // File type not allowed $errorMsg = 'Type of file not allowed.'; $hook->addError($sf, $errorMsg); $output = false; // generate submission error } // if no file, don't error, but return blank } else { $hook->setValue($sf, ''); } } return $output; ?>
&hooks=`math,spam,formit2file,email,redirect`
&hooks=`math,spam,email,redirect,formit2file`