2015-02-18 14:11:42 +00:00
|
|
|
<?php
|
2015-02-11 17:17:43 +00:00
|
|
|
function save_file ($file, $name, $arg){
|
|
|
|
//Where to save
|
|
|
|
$path='/home/neku/www/files/';
|
2015-10-05 22:44:30 +00:00
|
|
|
//Ext blacklist
|
|
|
|
$block = array('exe', 'scr', 'rar', 'zip', 'com', 'vbs', 'bat', 'cmd', 'html', 'htm', 'msi');
|
2015-02-11 17:17:43 +00:00
|
|
|
//Generate name depending on arg
|
|
|
|
switch($arg){
|
|
|
|
case 'random':
|
|
|
|
$ext = pathinfo($file.$name, PATHINFO_EXTENSION);
|
2015-10-05 22:44:30 +00:00
|
|
|
$ext = strtolower($ext);
|
|
|
|
if(in_array($ext, $block)){
|
|
|
|
die('File type not allowed.');}
|
2015-02-11 17:17:43 +00:00
|
|
|
$file_name = gen_name('random', $ext);
|
|
|
|
while(file_exists($path.$file_name)){
|
|
|
|
$file_name = gen_name('random', $ext);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 'custom_original':
|
2015-04-05 20:44:41 +00:00
|
|
|
$name = stripslashes(str_replace('/', '', $name));
|
2015-02-11 17:17:43 +00:00
|
|
|
$name = strip_tags(preg_replace('/\s+/', '', $name));
|
2015-10-05 22:44:30 +00:00
|
|
|
$file_name = gen_name('custom_original', $name);
|
|
|
|
$ext = pathinfo($file_name, PATHINFO_EXTENSION);
|
|
|
|
$ext = strtolower($ext);
|
|
|
|
if(in_array($ext, $block)){
|
|
|
|
die('File type not allowed.');}
|
2015-02-11 17:17:43 +00:00
|
|
|
while(file_exists($path.$file_name)){
|
|
|
|
$file_name = gen_name('custom_original', $name);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
//Move the file to the above location with said filename
|
|
|
|
move_uploaded_file($file,$path.$file_name);
|
|
|
|
//Return url+filename to the user
|
2015-02-18 14:12:28 +00:00
|
|
|
echo 'http://a.uguu.se/'.urlencode($file_name);
|
2015-02-11 17:17:43 +00:00
|
|
|
}
|
|
|
|
function gen_name($arg, $in){
|
|
|
|
$chars = 'abcdefghijklmnopqrstuvwxyz';
|
|
|
|
$name = '';
|
|
|
|
for ($i = 0; $i < 6; $i++) {
|
|
|
|
$name .= $chars[mt_rand(0, 25)];
|
|
|
|
}
|
|
|
|
switch($arg){
|
|
|
|
case 'random':
|
|
|
|
return $name.'.'.$in;
|
|
|
|
break;
|
|
|
|
case 'custom_original':
|
|
|
|
return $name.'_'.$in;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|