| class Pluf_Form_Field_File extends Pluf_Form_Field␊ |
| {␊ |
| public $widget = 'Pluf_Form_Widget_FileInput';␊ |
| public $move_function = 'Pluf_Form_Field_moveToUploadFolder';␊ |
| public $move_function = 'Pluf_Form_Field_File_moveToUploadFolder';␊ |
| public $max_size = 2097152; // 2MB␊ |
| public $move_function_params = array();␊ |
| ␊ |
|
| /**␊ |
| * Default move function. The file name is sanitized.␊ |
| *␊ |
| * In the extra parameters, 2 can be used so that this function is␊ |
| * In the extra parameters, options can be used so that this function is␊ |
| * matching most of the needs:␊ |
| *␊ |
| * * 'upload_path': The path in which the uploaded file will be␊ |
|
| *␊ |
| * * 'upload_overwrite': Set it to true if you want to allow overwritting.␊ |
| *␊ |
| * * 'file_name': Force the file name to this name and do not use the␊ |
| * original file name. If this name contains '%s' for␊ |
| * example 'myid-%s', '%s' will be replaced by the␊ |
| * original filename. This can be used when for␊ |
| * example, you want to prefix with the id of an␊ |
| * article all the files attached to this article.␊ |
| *␊ |
| * If you combine those options, you can dynamically generate the path␊ |
| * name in your form (for example date base) and let this upload␊ |
| * function create it on demand.␊ |
|
| * @param array Extra parameters. If upload_path key is set, use it. (array())␊ |
| * @return string Name relative to the upload path.␊ |
| */␊ |
| function Pluf_Form_Field_moveToUploadFolder($value, $params=array())␊ |
| function Pluf_Form_Field_File_moveToUploadFolder($value, $params=array())␊ |
| {␊ |
| $name = Pluf_Utils::cleanFileName($value['name']);␊ |
| $upload_path = Pluf::f('upload_path', '/tmp');␊ |
|
| throw new Pluf_Form_Invalid(__('An error occured when creating the upload path. Please try to send the file again.'));␊ |
| }␊ |
| }␊ |
| if (isset($params['file_name'])) {␊ |
| if (false !== strpos($params['file_name'], '%s')) {␊ |
| $name = sprintf($params['file_name'], $name);␊ |
| } else {␊ |
| $name = $params['file_name'];␊ |
| }␊ |
| }␊ |
| $dest = $upload_path.'/'.$name;␊ |
| if ((!isset($params['upload_overwrite']) or $params['upload_overwrite'] == false) and file_exists($dest)) {␊ |
| throw new Pluf_Form_Invalid(sprintf(__('A file with the name "%s" has already been uploaded.'), $name));␊ |