public $widget = 'IPF_Form_Widget_FileInput';
public $move_function = 'IPF_Form_Field_moveToUploadFolder';
public $remove_function = 'IPF_Form_Field_removeFile';
- public $max_size = 2097152; // 2MB
+ public $max_size = 8388608; // 8MB
public $move_function_params = array();
function clean($value)
{
- if ($value['remove']==1){
- //print_r($value);
+ if ($value['remove']===true){
IPF::loadFunction($this->remove_function);
return call_user_func($this->remove_function, $value['data']);
}
function IPF_Form_Field_moveToUploadFolder($value, $params=array())
{
- $name = IPF_Utils::cleanFileName($value['name']);
$upload_path = IPF::get('upload_path', '/tmp');
if (isset($params['upload_path'])) {
$upload_path = $params['upload_path'];
}
+ $name = IPF_Utils::cleanFileName($value['name'], $upload_path);
$dest = $upload_path.DIRECTORY_SEPARATOR.$name;
if (!move_uploaded_file($value['tmp_name'], $dest)) {
throw new IPF_Exception_Form(__('An error occured when upload the file. Please try to send the file again.'));
public function valueFromFormData($name, $data)
{
if (isset($data[$name])) {
- $remove = (int)$data[$name.'_remove'];
+ $remove = false;
+ if (isset($data[$name.'_remove']))
+ if ($data[$name.'_remove']==1)
+ $remove = true;
$res = array('data'=>$data[$name], 'remove'=>$remove);
return $res;
}
return $mysize;
}
- static function cleanFileName($name)
+ static function cleanFileName($name, $path)
{
$name = mb_strtolower($name, 'UTF-8');
- return mb_ereg_replace("/\015\012|\015|\012|\s|[^A-Za-z0-9\.\-\_]/", '_', $name);
+ $name = mb_ereg_replace("/\015\012|\015|\012|\s|[^A-Za-z0-9\.\-\_]/", '_', $name);
+
+ while(file_exists($path.$name)){
+ $pathinfo = pathinfo($name);
+ $filename = $pathinfo['filename'];
+ $split = split('_', $filename);
+ $n = count($split);
+ if ($n<2){
+ $filename .= '_2';
+ }
+ else{
+ $x = (int)$split[$n-1];
+ $y = $x+1;
+ $filename = str_replace('_'.$x, '_'.$y, $filename);
+ }
+ $name = $filename.'.'.$pathinfo['extension'];
+ }
+ return $name;
}
static function isValidUrl($url)