vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Upload a file using the datamanager? (https://vborg.vbsupport.ru/showthread.php?t=210935)

mokujin 04-11-2009 03:25 PM

Upload a file using the datamanager?
 
Hello,
I would like to use the vB Datamanager to upload a non-image file for my custom mini mod.
I cant find in this forum the tutorial anywhere.
Can someone help me? Thank you :)

Mr-Moo 04-11-2009 03:53 PM

So you are asking how to integrate the upload-form that Vbulletin has into your custom mini-mod?

You need to list more details on this mod. Is it on Vbulletin or a CMS?
Does the user need to be logged into VB to upload/download?
How is everything being displayed?

Thank you, these answers will help me better assist you.

mokujin 04-11-2009 05:00 PM

Quote:

Originally Posted by Mr-Moo (Post 1789047)
So you are asking how to integrate the upload-form that Vbulletin has into your custom mini-mod?

You need to list more details on this mod. Is it on Vbulletin or a CMS?
Does the user need to be logged into VB to upload/download?
How is everything being displayed?

Thank you, these answers will help me better assist you.

Hi,
Its on vBulletin. It does not matter if the uploader is user or Mod (for all)
Just upload the file on to the server. Thats all.

Mr-Moo 04-11-2009 05:10 PM

I am still a little unclear ;)

Are you looking to just have a file uploaded to any directory? I need details mate. Do you have any examples?

mokujin 04-11-2009 05:18 PM

Something like this for images: https://vborg.vbsupport.ru/showthrea...ghlight=upload
But I need for all file types.

Mr-Moo 04-11-2009 05:34 PM

If I go from the source provided in that link, I feel that the only modification that needs to be made is the following:

Code:

if($_POST['do']=="doupload"){
$vbulletin->input->clean_gpc("f","upload",TYPE_FILE);
require_once('./includes/class_upload.php');
$upload =& new vB_Upload_Attachment($vbulletin);
$upload->path = "./directory/of/choice/";
if (!($upload->process_upload($vbulletin->GPC['upload']))){
        eval(standard_error(fetch_error('there_were_errors_encountered_with_your_upload_x', $upload->fetch_error())));
    }
}

The items in red are what was modified/added.

Please let me know if this works.



Original source:
PHP Code:

// These are created each go around to insure memory has been freed
            
$attachdata =& datamanager_init('Attachment'$vbulletinERRTYPE_ARRAY);
            
$upload =& new vB_Upload_Attachment($vbulletin);
            
$image =& vB_Image::fetch_library($vbulletin);

            
$upload->data =& $attachdata;
            
$upload->image =& $image;
            if (
$uploadsum 1)
            {
                
$upload->emptyfile false;
            }

            
$upload->foruminfo =& $foruminfo;

            if (
$postid)  // Editing a post
            
{
                
$upload->userinfo =& $userinfo;
            }

            
$upload->postinfo =& $postinfo;

            if (
$vbulletin->GPC['attachment']['url']["$x"])
            {
                
$attachment =& $vbulletin->GPC['attachment']['name']["$x"];
            }
            else
            {
                
$attachment = array(
                    
'name'     =>& $vbulletin->GPC['attachment']['name']["$x"],
                    
'tmp_name' =>& $vbulletin->GPC['attachment']['tmp_name']["$x"],
                    
'error'    =>&    $vbulletin->GPC['attachment']['error']["$x"],
                    
'size'     =>& $vbulletin->GPC['attachment']['size']["$x"],
                );
            }

            
$attachcount++;
            if (!
$foruminfo['allowposting'])
            {
                
$error $vbphrase['this_forum_is_not_accepting_new_attachments'];
                
$errors[] = array(
                    
'filename' => $attachment['name'],
                    
'error'    => $error
                
);
            }
            else if (
$vbulletin->options['attachlimit'] AND $attachcount $vbulletin->options['attachlimit'])
            {
                
$error construct_phrase($vbphrase['you_may_only_attach_x_files_per_post'], $vbulletin->options['attachlimit']);
                
$errors[] = array(
                    
'filename' => $attachment['name'],
                    
'error'    => $error
                
);
            }
            else
            {

                if (
$attachmentid $upload->process_upload($attachment))
                {
                    if (
$vbulletin->userinfo['userid'] != $postinfo['userid'] AND can_moderate($threadinfo['forumid'], 'caneditposts'))
                    {
                        
$postinfo['attachmentid'] =& $attachmentid;
                        
$postinfo['forumid'] =& $foruminfo['forumid'];
                        require_once(
DIR '/includes/functions_log_error.php');
                        
log_moderator_action($postinfo'attachment_uploaded');
                    }
                }
                else
                {
                    
$attachcount--;
                }

                if (
$error $upload->fetch_error())
                {
                    
$errors[] = array(
                        
'filename' => is_array($attachment) ? $attachment['name'] : $attachment,
                        
'error'    => $error,
                    );
                }

            }
        }

        (
$hook vBulletinHook::fetch_hook('newattachment_attach')) ? eval($hook) : false;

        if (!empty(
$errors))
        {
            
$errorlist '';
            foreach (
$errors AS $error)
            {
                
$filename htmlspecialchars_uni($error['filename']);
                
$errormessage $error['error'];
                eval(
'$errorlist .= "' fetch_template('newattachment_errormessage') . '";');
            }
            
$show['errors'] = true;
        }
    }



mokujin 04-11-2009 06:00 PM

There is this error:

Fatal error: Call to a member function is_valid_info_extension() on a non-object in C:\AppServ\www\upload\includes\class_upload.php on line 649

Mr-Moo 04-12-2009 11:31 AM

Hello mokujin,

-What happened when you used the previous code (which you supplied). Did it properly upload images?
-What type of file-extension are you trying to upload?

Thank you,


All times are GMT. The time now is 01:43 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01640 seconds
  • Memory Usage 1,776KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (1)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (8)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete