Hi!
Here is the new Multiupload, works with jQuery and Uploadify.
About Style and all others, can you
read here.
- With this multi-upload you can upload more than one hundred images simultaneously.
- Large Images are automatically scaled.
(Update 01.07.2013) - Automatically upload in temp folder or direct,for each Categorie.
- When uploading Image Preview.
- Write Description and Keywords for all Images.
- Select Category for each image.
1.) create a new folder in your root and call it "js", and copy all files, from Attachment (multi.zip), in the new Folder.
Copy all Images, form (multi.zip), in your template/images folder.
2.) search in includes/upload_definitions.php:
$mime_type_match['jpg'] = array("image/jpg", "image/jpeg", "image/pjpeg");
$mime_type_match['jpeg'] = array("image/jpg", "image/jpeg", "image/pjpeg");
$mime_type_match['gif'] = array("image/gif");
$mime_type_match['png'] = array("image/png", "image/x-png");
and replace:
$mime_type_match['jpg'] = array("image/jpg", "image/jpeg", "image/pjpeg", "application/octet-stream");
$mime_type_match['jpeg'] = array("image/jpg", "image/jpeg", "image/pjpeg","application/octet-stream");
$mime_type_match['gif'] = array("image/gif","application/octet-stream");
$mime_type_match['png'] = array("image/png", "image/x-png","application/octet-stream");
3.) search in your lang/main.php "?>" and insert above:
(deutsch)
$lang['image'] = "Bild";
$lang['queueSizeLimit'] = " Bilder können gleichzeitig hochgeladen werden.";
$lang['for_all'] = "Beschreibung und Schlüsselwörter für alle Bilder:";
(english)
$lang['image'] = "Image";
$lang['queueSizeLimit'] = " Images can be uploaded at the same time.";
$lang['for_all'] = "Description and Keywords for all Images:";
4.) search in your Template/header.html "</head>" and insert above:
<script type="text/javascript" src="./js/multiupload/jquery-1.7.2.min.js"></script>
5.) create a new file, call it "member_multi_upload.html" and copy it in your Template Folder.
<script type="text/javascript" src="./js/multiupload/jquery.uploadify-3.1.min.js"></script>
<script type="text/javascript" >
$(function() {
$('#file_upload').uploadify({
formData : {
'__csrf' : '{token}',
'user_id' : '{user_id}',
'sessionid': '{session_id}',
'session_user_id' :'{session_user_id}'
},
'swf': './js/multiupload/uploadify.swf',
'uploader' : 'member.php?action=multi_uploadimage',
'fileObjName' : 'media_file',
'queueSizeLimit' : '{queueSizeLimit}',
'fileTypeExts' : '{allowed_mediatypes_js}',
'fileSizeLimit' : '{max_media_size_js}',
'height' : 20,
'width' : 100,
'buttonText': 'Select',
'progressData': 'speed',
'onQueueComplete' : function(queueData) {
location.href="./member.php?action=multi_upload&cat_id={cat_id}";
}
});
});
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="1">
<tr>
<td valign="top" class="head1">
<table width="100%" border="0" cellpadding="4" cellspacing="0">
<tr>
<td colspan="2" valign="top" class="head1">{lang_user_upload}</td>
</tr>
<tr>
<td class="row2" valign="top">
<b>{lang_media_file}</b><br>
<span class="smalltext">
{lang_max_filesize}<b>{max_media_filsize}</b><br>
{lang_max_imagewidth}<b>{max_media_imagewidth}</b><br>
{lang_max_imageheight}<b>{max_media_imageheight}</b><br>
</span>
</td>
<td valign="top" class="row2" colspan="2"><b>Upload:</b><br>
<input class="buttonClass" type="file" name="media_file" id="file_upload">
<br>
<span class="smalltext"><b>{queueSizeLimit}</b>{lang_queueSizeLimit}<br><b>{lang_allowed_file_types}</b> {allowed_media_types}</span>
</td>
</tr>
</table>
</td>
</tr>
</table>
6.) create a new file, call it "member_multi_uploadform.html" and copy it in your Template Folder.
<script type="text/javascript">
function CheckAll() {
for (var i=0;i<document.multi_uploadform.elements.length;i++) {
var e = document.multi_uploadform.elements[i];
if ((e.name != 'allbox') && (e.type=='checkbox')) {
e.checked = document.multi_uploadform.allbox.checked;
}
}
}
</script>
<form name="multi_uploadform" method="post" action="member.php" enctype="multipart/form-data" onsubmit="uploadbutton.disabled=true;">
<input type="hidden" name="action" value="multi_saveimages">
<table width="100%" border="0" cellspacing="0" cellpadding="1">
<tr>
<td valign="top" class="head1">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="head1"colspan="4"><input name="allbox" type="checkbox" checked="checked" onClick="CheckAll();"></td>
</tr>
<tr>
<td>
{uploadform_content}
</td>
</tr>
</table>
{if captcha_upload}
<table width="100%" border="0" cellpadding="4" cellspacing="0">
<tr>
<td class="row1" valign="top"><b>{lang_captcha}</b></td>
<td class="row1" >
<a href="javascript:new_captcha_image();"><img src="{url_captcha_image}" border="0" alt="" id="captcha_image" /></a> <br>
<input type="text" name="captcha" size="30" value="" class="captchainput" id="captcha_input">
<br>
<table cellpadding="0" cellspacing="0" width="210">
<tr>
<td width="600">{lang_captcha_desc}</td>
</tr>
</table>
</td>
</tr>
</table>
{endif captcha_upload}
</td>
</tr>
</table>
<p align="center">
<input type="hidden" name="cat_id" value="{cat_id}">
<input type="submit" name="uploadbutton" value="{lang_submit}" class="button">
<input type="reset" value="{lang_reset}" class="button">
</p>
</form>
7.) add in your Templates/style.css at the end of the file, a:
.uploadify-button {
border: 1px solid #fcdc43;
background-color: #004c75;
color: #fcdc43;
font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
font-weight:bold;
text-align:center;
padding:0;
margin:0;
}
.uploadify:hover .uploadify-button {
border:1px solid #fcdc43;
background-color: #0f5475;
color: red;
font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
font-weight:bold;
cursor:pointer;
}
.uploadify:active .uploadify-button {
border: 1px solid #fcdc43;
}
.uploadify-queue {
margin-bottom: 1em;
}
.uploadify-queue-item {
background-color: #e1e1e1;
font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
font-size: 11px;
margin-top: 5px;
max-width: 350px;
padding: 10px;
}
.uploadify-error {
background-color: #FDE5DD !important;
}
.uploadify-queue-item .cancel a {
background: url('images/uploadify-cancel.png') 0 0 no-repeat;
float: right;
height: 16px;
width: 16px;
text-indent: -9999px;
}
.uploadify-queue-item.completed {
background-color: #f9f9f9;
}
.uploadify-progress {
background-color: #fcdc43;
margin-top: 10px;
width: 100%;
}
.uploadify-progress-bar {
background-color: #0099FF;
height: 3px;
width: 1px;
}
.uploadify-textarea{
font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
color: #0f5475;
font-size: 11px;
width: 280px;
height:40px;
}
.uploadify-input{
font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
color: #0f5475;
font-size: 11px;
width: 190px;
}
8.) search in root/categories.php:
$upload_button = "<img src=\"".get_gallery_image("upload_off.gif")."\" border=\"0\" alt=\"\" />";
insert below:
$multi_upload_url = "";
$multi_upload_button = "<img src=\"".get_gallery_image("multiupload_off.gif")."\" border=\"0\" alt=\"\" />";8.2) search:
$upload_button = "<a href=\"".$upload_url."\"><img src=\"".get_gallery_image("upload.gif")."\" border=\"0\" alt=\"\" /></a>";
insert below:
$multi_upload_url = $site_sess->url(ROOT_PATH."member.php?action=multi_upload&".URL_CAT_ID."=".$cat_id);
$multi_upload_button = "<a href=\"".$multi_upload_url."\"><img src=\"".get_gallery_image("multiupload.gif")."\" border=\"0\" alt=\"\" /></a>";
8.3) search:
"upload_button" => $upload_button,
insert below:
"multi_upload_url" => $multi_upload_url,
"multi_upload_button" => $multi_upload_button,
9.) search in your template/categories.html
<td align="right" valign="bottom">{upload_button}</td>
replace:
<td align="right" valign="bottom">{multi_upload_button} {upload_button}</td>
10.) search in member.php:
if ($action == "emailuser") {
insert above:
//############################## Start Multiupload ###################################
if ($action == "multi_saveimages") {
$txt_clickstream = "";
if ($cat_id && isset($cat_cache[$cat_id])) {
$txt_clickstream .= get_category_path($cat_id, 1).$config['category_separator'];
}
$txt_clickstream .= $lang['user_upload'];
$num_newimages = intval(trim($HTTP_POST_VARS['sum_images']));
$captcha = (isset($HTTP_POST_VARS['captcha'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['captcha'])) : "";
$error = array();
for ($i = 1; $i <= $num_newimages; $i++) {
$image_id = intval(trim($HTTP_POST_VARS['image_id_'.$i]));
$addimage = (isset($HTTP_POST_VARS['addimage_'.$i]) && $HTTP_POST_VARS['addimage_'.$i] == 1) ? 1 : 0;
$old_media_path = MEDIA_TEMP_PATH."/".un_htmlspecialchars(trim($HTTP_POST_VARS['image_media_file_'.$i]));
$old_thumb_path = THUMB_TEMP_PATH."/".un_htmlspecialchars(trim($HTTP_POST_VARS['image_thumb_file_'.$i]));
$image_description = un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_description_'.$i])));
$image_keywords = un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_keywords_'.$i])));
if ($addimage) {
$count_add_image++;
$image_name = un_htmlspecialchars(trim($HTTP_POST_VARS['image_name_'.$i]));
$cat_id = intval($HTTP_POST_VARS['cat_id_'.$i]);
if ($image_name == "") {
$error['image_name_'.$i] = 1;
$field_error = preg_replace("/".$site_template->start."field_name".$site_template->end."/siU", str_replace(":", "", $lang['image_name']), $lang['field_required']);
$msg .= (($msg != "") ? "<br />" : "").$lang['image']." ".$i." ".$field_error;
}
if ($cat_id == 0) {
$error['cat_id'.$i] = 1;
$field_error = preg_replace("/".$site_template->start."field_name".$site_template->end."/siU", str_replace(":", "", $lang['category']), $lang['field_required']);
$msg .= (($msg != "") ? "<br />" : "").$lang['image']." ".$i." ".$field_error;
}
if (!empty($additional_image_fields)) {
foreach ($additional_image_fields as $key => $val) {
if (isset($HTTP_POST_VARS[$key.'_'.$i]) && intval($val[2]) == 1 && trim($HTTP_POST_VARS[$key.'_'.$i]) == "") {
$error[$key.'_'.$i] = 1;
$field_error = preg_replace("/".$site_template->start."field_name".$site_template->end."/siU", str_replace(":", "", $val[0]), $lang['field_required']);
$msg .= (($msg != "") ? "<br />" : "").$lang['image']." ".$i." ".$field_error;
}
}
}
}
else{
$image_name = un_htmlspecialchars(trim($HTTP_POST_VARS['image_name_'.$i]));
$sql = "DELETE FROM ".IMAGES_TEMP_TABLE."
WHERE image_id = $image_id
";
$site_db->query($sql);
@unlink($old_media_path);
@unlink($old_thumb_path);
$msg .= "<br><b>".$i.".)</b> ".$lang['image_delete_success'].":";
$msg .= " <b>".format_text(stripslashes($image_name))."";
}
}//end for
if ($addimage && $captcha_enable_upload && !captcha_validate($captcha)) {
$msg .= (($msg != "") ? "<br />" : "").$lang['captcha_required'];
$error = 1;
}
if (!$error) {
include(ROOT_PATH.'includes/upload.php');
$save_all = intval(trim($HTTP_POST_VARS['save_all']));
for ($i = 1; $i <= $num_newimages; $i++){
$addimage = (isset($HTTP_POST_VARS['addimage_'.$i]) && $HTTP_POST_VARS['addimage_'.$i] == 1) ? 1 : 0;
$save_all = intval(trim($HTTP_POST_VARS['save_all']));
if ($addimage) {
$cat_id = intval(trim($HTTP_POST_VARS['cat_id_'.$i]));
$temp_image_id = intval(trim($HTTP_POST_VARS['image_id_'.$i]));
$image_name = un_htmlspecialchars(trim($HTTP_POST_VARS['image_name_'.$i]));
$image_media_file = un_htmlspecialchars(trim($HTTP_POST_VARS['image_media_file_'.$i]));
$image_thumb_file = un_htmlspecialchars(trim($HTTP_POST_VARS['image_thumb_file_'.$i]));
$old_media_path = MEDIA_TEMP_PATH."/".$image_media_file;
$old_thumb_path = THUMB_TEMP_PATH."/".$image_thumb_file;
$image_description = ($save_all) ? un_htmlspecialchars(trim($HTTP_POST_VARS['image_description_1'])) : un_htmlspecialchars(trim($HTTP_POST_VARS['image_description_'.$i]));
$image_keywords = ($save_all) ? un_htmlspecialchars(trim($HTTP_POST_VARS['image_keywords_1'])) : un_htmlspecialchars(trim($HTTP_POST_VARS['image_keywords_'.$i]));
$image_keywords = preg_replace("/[\n\r]/is", ",", $image_keywords);
$image_keywords_arr = explode(',', $image_keywords);
array_walk($image_keywords_arr, 'trim_value');
$image_keywords = implode(',', array_unique(array_filter($image_keywords_arr)));
$direct_upload = (check_permission("auth_directupload", $cat_id)) ? 1 : 0;
$additional_field_sql = "";
$additional_value_sql = "";
if (!empty($additional_image_fields)) {
$table = ($direct_upload) ? IMAGES_TABLE : IMAGES_TEMP_TABLE;
$table_fields = $site_db->get_table_fields($table);
//################# Start Exif IPTC #####################
$src_file = $old_media_path;
$size = getimagesize ($src_file, $info);
if(isset($info['APP13'])){
$iptc_array = get_iptc_info($info['APP13']);
foreach ($iptc_array as $key => $val) {
$additional_field_sql .= ',image_'.$key;
$additional_value_sql .= ",'".$val."'";
}
}
//################# End Exif IPTC ########################
foreach ($additional_image_fields as $key => $val) {
if (isset($HTTP_POST_VARS[$key.'_'.$i]) && isset($table_fields[$key])) {
$additional_field_sql .= ", $key";
$additional_value_sql .= ", '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key.'_'.$i]))."'";
$additional_sql .= ", $key = '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key.'_'.$i]))."'";
}
}
}
$current_time = time();
if (!$direct_upload) {
$sql = "UPDATE ".IMAGES_TEMP_TABLE."
SET cat_id = $cat_id, image_name = '$image_name', image_description = '$image_description', image_keywords = '$image_keywords', image_date = $current_time".$additional_sql."
WHERE user_id = ".$user_info['user_id']." AND image_id = ".$temp_image_id."
";
$result = $site_db->query($sql);
$cat_id_array[] = $cat_id;
$image_name_array[] = $image_name;
$new_name_array[] = $image_media_file;
$msg .= "<br><b>".$i.".)</b> ".$lang['new_upload_validate_desc'].":";
$msg .= " <b>".format_text(stripslashes($image_name), 2)."</b> (".$image_media_file.")<br />";
$sendprocess = 1;
}
else {
$new_name = multi_copy_media($image_media_file, "-1", $cat_id);
$new_thumb_name = multi_copy_thumbnail($new_name, $image_thumb_file, "-1", $cat_id);
if($new_name){
$sql = "INSERT INTO ".IMAGES_TABLE."
(cat_id, user_id, image_name, image_description, image_keywords, image_date, image_media_file, image_thumb_file".$additional_field_sql.")
VALUES
($cat_id, ".$user_info['user_id'].", '$image_name', '".mysql_real_escape_string($image_description)."', '".mysql_real_escape_string($image_keywords)."', $current_time, '$new_name', '$new_thumb_name'".$additional_value_sql.")";
$result = $site_db->query($sql);
$image_id = $site_db->get_insert_id();
if ($result) {
include_once(ROOT_PATH.'includes/search_utils.php');
$search_words = array();
foreach ($search_match_fields as $image_column => $match_column) {
if($save_all){
if (isset($HTTP_POST_VARS[$image_column.'_1'])) {
$search_words[$image_column] = stripslashes($HTTP_POST_VARS[$image_column.'_1']);
}
}else{
if (isset($HTTP_POST_VARS[$image_column.'_'.$i])) {
$search_words[$image_column] = stripslashes($HTTP_POST_VARS[$image_column.'_'.$i]);
}
}
}
add_searchwords($image_id, $search_words);
//######################### Start Exif IPTC #########################
$sql = "SELECT image_id".$additional_field_sql."
FROM ".IMAGES_TABLE."
WHERE image_id = $image_id
";
$result = $site_db->query($sql);
while ($row = $site_db->fetch_array($result)) {
$additional_search_words = array();
foreach ($search_match_fields as $image_column => $match_column) {
if (isset($row[$image_column])) {
$additional_search_words[$image_column] = $row[$image_column];
}
}
add_searchwords($image_id, $additional_search_words);
};
//####################### End Exif IPTC ##########################
$sql = "DELETE FROM ".IMAGES_TEMP_TABLE."
WHERE image_id = $temp_image_id
";
$site_db->query($sql);
}
}
else {
$msg .= "<br><b>".$i.".)</b> ".$lang['image_add_error'].":";
$msg .= " <b>".format_text(stripslashes($image_name), 2)."</b> (".$image_media_file.")<br>";
}
$msg .= "<br><b>".$i.".)</b> ".$lang['image_add_success'].":";
$msg .= " <b>".format_text(stripslashes($image_name), 2)."</b> (".$image_media_file.")<br>";
}
}//add_image
} //end for
}//error
else {
$action = "multi_upload";
}
if ($config['upload_notify'] == 1 && $sendprocess) {
$cat_id_send = "";
$image_name_send = "";
$new_name_send = "";
$cat_id_send = implode("\",\" ", $cat_id_array);
$image_name_send = implode("\",\" ", $image_name_array);
$new_name_send = implode("\",\" ", $new_name_array);
include(ROOT_PATH.'includes/email.php');
$site_email = new Email();
$config['upload_emails'] = str_replace(" ", "", $config['upload_emails']);
$emails = explode(",", $config['upload_emails']);
$validation_url = $script_url."/admin/index.php?goto=".urlencode("validateimages.php?action=validateimages");
$site_email->set_to($config['site_email']);
$site_email->set_subject($lang['new_upload_emailsubject']);
$site_email->register_vars(array(
"image_name" => stripslashes('"'.$image_name_send.'"'),
"file_name" => '"'.$new_name_send.'"',
"cat_name" => '"'.$cat_id_send.'"',
"validation_url" => $validation_url,
"site_name" => $config['site_name']
));
$site_email->set_body("multi_upload_notify", $config['language_dir_default']);
$site_email->set_bcc($emails);
$site_email->send_email();
}
$action = "multi_upload";
}
if($action == "multi_upload"){
$config['queueSizeLimit'] = 10;
if ($cat_id != 0 && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload", $cat_id))) {
show_error_page($lang['no_permission']);
exit;
}
$txt_clickstream = "";
if ($cat_id && isset($cat_cache[$cat_id])) {
$txt_clickstream .= get_category_path($cat_id, 1).$config['category_separator'];
}
$txt_clickstream .= "Multi ".$lang['user_upload'];
$site_template->register_vars(array(
"cat_id" => $cat_id,
"user_id" => $user_info['user_id'],
"session_id" => session_id(),
"session_user_id" => $session_info['session_user_id'],
"token" => (string)csrf_token(),
"lang_user_upload" => $lang['user_upload'],
"queueSizeLimit" => $config['queueSizeLimit'],
"allowed_mediatypes_js" => "*.".str_replace(",","; *.",$config['allowed_mediatypes']),
"max_media_size_js" => $config['max_media_size']."KB",
"lang_category" => $lang['category'],
"lang_user_upload" => "Multi ".$lang['user_upload'],
"lang_media_file" => $lang['media_file'],
"lang_thumb_file" => $lang['thumb_file'],
"lang_allowed_file_types" => $lang['allowed_mediatypes_desc'],
"allowed_media_types" => str_replace(",",", ",$config['allowed_mediatypes']),
"allowed_thumb_types" => "jpg, gif, png",
"lang_queueSizeLimit" => $lang['queueSizeLimit'],
"lang_max_filesize" => $lang['max_filesize'],
"lang_max_imagewidth" => $lang['max_imagewidth'],
"lang_max_imageheight" => $lang['max_imageheight'],
"max_media_filsize" => $config['max_media_size']." ".$lang['kb'],
"max_media_imagewidth" => $config['max_image_width']." ".$lang['px'],
"max_media_imageheight" => $config['max_image_height']." ".$lang['px'],
));
$content = $site_template->parse_template("member_multi_upload");
$sql = "SELECT COUNT(image_id) AS sum_images
FROM ".IMAGES_TEMP_TABLE."
WHERE user_id = ".$user_info['user_id']." AND cat_id = 0
";
$sum = $site_db->query_firstrow($sql);
$sum_images = $sum['sum_images'];
if($sum_images){
$sql = "SELECT image_id, cat_id, user_id, image_name, image_date, image_media_file, image_thumb_file".$additional_sql."
FROM ".IMAGES_TEMP_TABLE."
WHERE user_id = ".$user_info['user_id']." AND cat_id = 0
";
$result = $site_db->query($sql);
if($result){
$save_all = "<br>
<b>Description and Keywords for all Images<br>
<input type=\"checkbox\" name=\"save_all\" value=\"1\">
";
$uploadform_content ="";
$i = 1;
$site_template->register_vars("save_all",$save_all);
while ($image_row = $site_db->fetch_array($result)){
$addimage = (isset($HTTP_POST_VARS['addimage_'.$i]) && $HTTP_POST_VARS['addimage_'.$i] == 1) ? 1 : 0;
$cat_id = (isset($HTTP_POST_VARS['cat_id_'.$i])) ? intval($HTTP_POST_VARS['cat_id_'.$i]) : (($image_row['cat_id'])? $image_row['cat_id'] : $cat_id);// Cat_id
$image_name = (isset($HTTP_POST_VARS['image_name_'.$i])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_name_'.$i]))) : $image_row['image_name'];
$image_description = (isset($HTTP_POST_VARS['image_description_'.$i])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_description_'.$i]))) : $image_row['image_description'];
$image_keywords = (isset($HTTP_POST_VARS['image_keywords_'.$i])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_keywords_'.$i]))) : $image_row['image_keywords'];
$row_bg_number = ($i % 2 == 0) ? 1 : 2;
$save_all = ($i == 1) ? $save_all :"";
$uploadform_content .= "
<table cellpadding=\"4\" cellspacing=\"1\" border=\"0\">
<tr class=\"row".$row_bg_number."\">
<td>
<table cellpadding=\"4\" cellspacing=\"0\" border=\"0\">
<tr>
<td>
<input type=\"checkbox\" name=\"addimage_".$i."\" checked value=\"1\">
</td>
<td valign=\"top\" width=\"".$config['max_thumb_width']."\">
<img src=\"data/tmp_thumbnails/".$image_row['image_thumb_file']."\">
</td>
<td valign=\"top\"><b>".$i.".) ".$lang['image_name']."</b></br>
<input class=\"input\" type=\"text\" name=\"image_name_".$i."\" size=\"20\" value=\"".format_text(stripslashes($image_name), 2)."\">
<input type=\"hidden\" name=\"image_id_".$i."\" value=\"".$image_row['image_id']."\">
<input type=\"hidden\" name=\"image_media_file_".$i."\" value=\"".$image_row['image_media_file']."\">
<input type=\"hidden\" name=\"image_thumb_file_".$i."\" value=\"".$image_row['image_thumb_file']."\">
<input type=\"hidden\" name=\"sum_images\" value=\"".$sum_images."\">
</td>
<td valign=\"top\">
<b>".$lang['category']."</b></br>
".get_category_dropdown($cat_id,"",3,$i)."
</td>
<td valign=\"top\">
<b>".$lang['description']."</b></br>
<textarea class=\"textarea\" cols=\"20\" rows=\"2\" name=\"image_description_".$i."\" >".$image_description."</textarea>
<br>
<b>".$lang['keywords']."</br>
<textarea class=\"textarea\" cols=\"20\" rows=\"2\" name=\"image_keywords_".$i."\">".$image_keywords."</textarea>
".$save_all."
</td>
</tr>
<tr>
<td colspan=\"5\"></td>
</tr>
</table>
</td>
</tr>
</table>
";
$i++;
} //while
}
$site_template->register_vars(array(
"uploadform_content" => $uploadform_content,
"cat_id" => $cat_id,
"lang_captcha" => $lang['captcha'],
"lang_captcha_desc" => $lang['captcha_desc'],
"captcha_upload" => (bool)$captcha_enable_upload,
"lang_category" => $lang['category'],
"lang_submit" => $lang['submit'],
"lang_reset" => $lang['reset'],
"lang_category" => $lang['category'],
"lang_image" => $lang['image'],
));
$content .= $site_template->parse_template("member_multi_uploadform");
}else{
$action="multi_upload";
}
}
if($action == "multi_uploadimage"){
if (isset($HTTP_GET_VARS['user_id']) || isset($HTTP_POST_VARS['user_id'])) {
$user_id = (isset($HTTP_GET_VARS['user_id'])) ? intval($HTTP_GET_VARS['user_id']) : intval($HTTP_POST_VARS['user_id']);
if (!$user_id) {
$user_id = GUEST;
}
}
else {
$user_id = GUEST;
}
if($cat_id != 0 && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload", $cat_id))){
show_error_page($lang['no_permission']);
exit;
}
if(!empty($_FILES)){
$uploaderror = 0;
$image_name = utf8_decode(get_file_name(un_htmlspecialchars(trim($_FILES['media_file']['name']))));
include(ROOT_PATH.'includes/upload.php');
$site_upload = new Upload();
if(!empty($HTTP_POST_FILES['media_file']['tmp_name']) && $HTTP_POST_FILES['media_file']['tmp_name'] != "none"){
$new_name = ($site_upload->upload_file("media_file", "media"));
if (!$new_name) {
echo $site_upload->get_upload_errors();
$uploaderror = 1;
}
}
$new_thumb_name = "";
if($config['auto_thumbnail'] == 1 && !empty($new_name) && !$uploaderror && ((!empty($HTTP_POST_FILES['media_file']['tmp_name']) && $HTTP_POST_FILES['media_file']['tmp_name'] != "none") || is_remote($new_name))) {
if (is_remote($new_name)){
$src = $new_name;
$thumb = create_unique_filename(THUMB_TEMP_PATH, filterFileName($new_name));
}else{
$src = MEDIA_TEMP_PATH."/".$new_name;
$thumb = $new_name;
}
$dest = THUMB_TEMP_PATH."/".$thumb;
$do_create = 0;
if($image_info = @getimagesize($src)){
if ($image_info[2] == 1 || $image_info[2] == 2 || $image_info[2] == 3) {
$do_create = 1;
}
}
if($do_create){
require(ROOT_PATH.'includes/image_utils.php');
$convert_options = init_convert_options();
if (!$convert_options['convert_error']&& $image_info[2] == 2||$image_info[2] == 3){
$quality = 100;
if (!resize_image($src, $quality, $config['max_image_width'], 1, $config['max_image_height'])){
$msg .= (($msg != "") ? "<br>" : "")."<b>".$lang['file_upload_error'].": ".$new_name;
$uploaderror = 1;
}
}
if(!$convert_options['convert_error']){
$dimension = (intval($config['auto_thumbnail_dimension'])) ? intval($config['auto_thumbnail_dimension']) : 100;
$resize_type = (intval($config['auto_thumbnail_resize_type'])) ? intval($config['auto_thumbnail_resize_type']) : 1;
$quality = (intval($config['auto_thumbnail_quality']) && intval($config['auto_thumbnail_quality']) <= 100) ? intval($config['auto_thumbnail_quality']) : 100;
if(create_thumbnail($src, $dest, $quality, $dimension, $resize_type)){
$new_thumb_name = $thumb;
}
}
}
}
if(!$uploaderror){
$additional_field_sql = "";
$additional_value_sql = "";
if(!empty($additional_image_fields)) {
$table = IMAGES_TEMP_TABLE;
$table_fields = $site_db->get_table_fields($table);
foreach ($additional_image_fields as $key => $val){
if(isset($HTTP_POST_VARS[$key]) && isset($table_fields[$key])){
$additional_field_sql .= ", $key";
$additional_value_sql .= ", '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key]))."'";
}
}
}
$current_time = time();
$sql = "INSERT INTO ".IMAGES_TEMP_TABLE."
(cat_id, user_id, image_name, image_date, image_media_file, image_thumb_file".$additional_field_sql.")
VALUES
($cat_id, '$user_id', '$image_name', $current_time, '$new_name', '$new_thumb_name'".$additional_value_sql.")
";
$result = $site_db->query($sql);
}
echo 1;
}
else {
echo 0;
}
}
//############################ End Multiupload #################################################
11.) search in includes/functions..php "?>" and insert above:
//############################## Start Multiupload ###################################
function multi_copy_media($image_media_file, $from_cat = 0, $to_cat = 0) {
global $config;
if (is_remote($image_media_file)) {
return $image_media_file;
}
$image_src = ($from_cat != -1) ? MEDIA_PATH.(($from_cat != 0) ? "/".$from_cat : "") : MEDIA_TEMP_PATH;
$image_dest = ($to_cat != -1) ? MEDIA_PATH.(($to_cat != 0) ? "/".$to_cat : "") : MEDIA_TEMP_PATH;
return multi_copy_file($image_src, $image_dest, $image_media_file, $image_media_file, $config['upload_mode']);
}
function multi_copy_thumbnail($image_media_file, $image_thumb_file, $from_cat = 0, $to_cat = 0) {
if (is_remote($image_thumb_file)) {
return $image_thumb_file;
}
$thumb_src = ($from_cat != -1) ? THUMB_PATH.(($from_cat != 0) ? "/".$from_cat : "") : THUMB_TEMP_PATH;
$thumb_dest = ($to_cat != -1) ? THUMB_PATH.(($to_cat != 0) ? "/".$to_cat : "") : THUMB_TEMP_PATH;
if ($image_thumb_file != "" && file_exists($thumb_src."/".$image_thumb_file)) {
$thumb_extension = get_file_extension($image_thumb_file);
$new_thumb = get_file_name($image_media_file).".".$thumb_extension;
if ($new_thumb = multi_copy_file($thumb_src, $thumb_dest, $image_thumb_file, $new_thumb, 1))
{
$image_thumb_file = $new_thumb;
}
}
return $image_thumb_file;
}
function multi_copy_file($image_src, $image_dest, $image_media_file, $dest_file_name, $type, $filter = 1, $move = 1)
{
$image_src_file = $image_src."/".$image_media_file;
$dest_file_name = ($filter) ? filterFileName($dest_file_name) : $dest_file_name;
$ok = 0;
if (!file_exists($image_dest) || !is_dir($image_dest))
{
$oldumask = umask(0);
$result = _mkdir($image_dest);
@chmod($image_dest, CHMOD_DIRS);
umask($oldumask);
}
switch ($type) {
case 1: // overwrite mode
if (file_exists($image_src."/".$image_media_file)) {
if (file_exists($image_dest."/".$dest_file_name)) {
unlink($image_dest."/".$dest_file_name);
}
$ok = copy($image_src."/".$image_media_file, $image_dest."/".$dest_file_name);
}
break;
case 2: // create new with incremental extention
if (file_exists($image_src."/".$image_media_file)) {
$file_extension = get_file_extension($dest_file_name);
$file_name = get_file_name($dest_file_name);
$n = 2;
$copy = "";
while (file_exists($image_dest."/".$file_name.$copy.".".$file_extension)) {
$copy = "_".$n;
$n++;
}
$new_file = $file_name.$copy.".".$file_extension;
$ok = copy($image_src."/".$image_media_file, $image_dest."/".$new_file);
$dest_file_name = $new_file;
}
break;
case 3: // do nothing if exists, highest protection
default:
if (file_exists($image_src."/".$image_media_file)) {
if (file_exists($image_dest."/".$dest_file_name)) {
$ok = 0;
}
else {
$ok = copy($image_src."/".$image_media_file, $image_dest."/".$dest_file_name);
}
}
break;
}
if ($ok) {
if ($move)
{
@unlink($image_src_file);
}
@chmod($image_dest."/".$dest_file_name, CHMOD_FILES);
return $dest_file_name;
}
else {
return false;
}
}
//############################## End Multiupload ###################################
12.) create a new file, call it "multi_upload_notify.html" and copy it in your lang/your language/email Folder.
(deutsch)
Neue Bilder wurden auf "{site_name}" hinzugefügt und muessen freigeschaltet werden.
Kategorie: {cat_name}
Bildnamen: {image_name}
Dateien: {file_name}
{validation_url}
--
Mit freundlichen Grüßen,
{site_name}
(english)
New images has been uploaded to "{site_name}" and awaits validation.
Category: {cat_name}
Image Name: {image_name}
File: {file_name}
{validation_url}
--
Best regards,
{site_name}
the queue Size Limit can you set in member.php, search in the new code:
//########## config ########
$config['queueSizeLimit'] = 10;
//########## config ########
that's for sure, this is my last Multiupload.
mfg Andi