PDA

View Full Version : uploading images in a plugin.


wpeloquin
03-01-2011, 09:49 PM
I am trying to put in an upload picture function on a plugin i am working on, but i cannot get the plugin to work properly. I am obviously doing something wrong, and I am sure it is probably something simple that i am overlooking. The goal is to store the picture name (default.jpg, name.gif, etc) in the database field, and upload the file to $imagedir. The image could then be shown using something like <img src="{vb:raw imagedir}{vb:raw picture variable}" />

This is what i currently have:


<input type="hidden" name="set_user" value="{vb:raw bbuserinfo.userid}" />
<input type="text" name="set_name" id="set_name" class="primary textbox" />
<input type="file" name="set_pic" id="set_pic" class="primary textbox" />



$vbulletin->input->clean_array_gpc('p', array(
'set_user' => TYPE_UINT,
'set_id' => TYPE_UINT,
'set_name' => TYPE_STR,
'set_pic' => TYPE_FILE,
);

$imagedir = $vbulletin->options['pic_defaultlocation'];
$charpic_name = basename($_FILES['set_pic']['name']);

$path = $wp_imagedir . $charpic_name;

move_uploaded_file($_FILES['set_pic']['tmp_name'], $path);

$vbulletin->db->query_write("
INSERT INTO `". TABLE_PREFIX ."table`
(user_id, object_uniqueid, name, pic)
VALUES (
'" . $vbulletin->db->escape_string($vbulletin->GPC['set_user']) . "',
'" . $vbulletin->db->escape_string($vbulletin->GPC['set_id']) . "',
'" . $vbulletin->db->escape_string($vbulletin->GPC['set_name']) . "',
'" . $vbulletin->db->escape_string($vbulletin->GPC['set_pic']) . "'
)
");

Lynne
03-01-2011, 10:06 PM
And what is the result of what you have - can we have a link/example? And what template are you editing (and where)? And what hook location are you using?

wpeloquin
03-02-2011, 06:52 PM
the template i am using is a custom added template (roster_add) using a custom php file (roster.php).

I attached a picture showing the base element of the form. Every aspect of the entire form works properly, minus the picture uploading. When i select a picture and submit, Array gets stored in the database field for the picture instead of the picture name.

the result, in a "view character" screen, shows the broken image alt text (character name). if you try to view picture, it returns an invalid link, "demoforums/images/roster/Array". So the code is pulling the correct data from the database for viewing, but the data is being stored wrong. "Array" is being stored instead of "picturename.png", and the file is not being uploaded at all to the directory.

<img src="{vb:raw imagedir}{vb:raw char.pic}" alt="{vb:raw char.char_name}" />