Michael D Price
05-25-2009, 08:50 PM
*This issue has been solved*
Ok, im trying to modify the newattachment.php to allow attaching local files without going through any uploading process.
With the code below, I keep getting the error
"Failed to write file. Check disc quotas and permissions for the path: /home/cashmone/vbuploads/1"
This is not a permission issue, as attaching via upload works ok.
if (!empty($vbulletin->GPC['attach']))
{
$vbulletin->input->clean_gpc('p', 'attachmentpath', TYPE_ARRAY_STR);
$attachdata =& datamanager_init('Attachment', $vbulletin, ERRTYPE_STANDARD);
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
{
//die(print_r($vbulletin->GPC['attachmentpath']));
//echo filesize("/home/cashmone/vbuploads/".$vbulletin->GPC['attachmentpath'][0]);
//die();
$attachdata->set('dateline', TIMENOW);
$attachdata->set('thumbnail_dateline', TIMENOW);
if ($attachdata->fetch_field('visible') === null)
{
if (isset($vbulletin->foruminfo['moderateattach']))
{
$visible = ((!$vbulletin->foruminfo['moderateattach'] OR can_moderate($vbulletin->foruminfo['forumid'], 'canmoderateattachments')) ? 1 : 0);
}
else
{
#default an attachment with no specified visibility to true
$visible = 1;
}
$attachdata->set('visible', $visible);
}
$attachdata->setr('userid', $vbulletin->userinfo['userid']);
$attachdata->setr('filename', $vbulletin->GPC['attach']);
$attachdata->setr('filesize', filesize("/home/cashmone/vbuploads/".$vbulletin->GPC['attachmentpath'][0]));
$attachdata->setr('filehash', md5_file("/home/cashmone/vbuploads/".$vbulletin->GPC['attachmentpath'][0]));
$attachdata->setr('posthash', $vbulletin->postinfo['posthash']);
//$attachdata->setr_info('thumbnail', '');
$attachdata->setr_info('postid', $vbulletin->postinfo['postid']);
$attachdata->set_info('filedata_location', "/home/cashmone/vbuploads/".$vbulletin->GPC['attachmentpath']);
// Update an existing attachment of the same name, rather than insert a new one or throw an "Attachment Already Exists" error
// I don't think this is actually used so ignore it for now
//$this->data->set_info('updateexisting', true);
if (!($result = $attachdata->save()))
{
die('error');
}
//@unlink($this->upload['location']);
//unset($this->upload);
return $result;
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,
);
}
}
}
Ok, im trying to modify the newattachment.php to allow attaching local files without going through any uploading process.
With the code below, I keep getting the error
"Failed to write file. Check disc quotas and permissions for the path: /home/cashmone/vbuploads/1"
This is not a permission issue, as attaching via upload works ok.
if (!empty($vbulletin->GPC['attach']))
{
$vbulletin->input->clean_gpc('p', 'attachmentpath', TYPE_ARRAY_STR);
$attachdata =& datamanager_init('Attachment', $vbulletin, ERRTYPE_STANDARD);
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
{
//die(print_r($vbulletin->GPC['attachmentpath']));
//echo filesize("/home/cashmone/vbuploads/".$vbulletin->GPC['attachmentpath'][0]);
//die();
$attachdata->set('dateline', TIMENOW);
$attachdata->set('thumbnail_dateline', TIMENOW);
if ($attachdata->fetch_field('visible') === null)
{
if (isset($vbulletin->foruminfo['moderateattach']))
{
$visible = ((!$vbulletin->foruminfo['moderateattach'] OR can_moderate($vbulletin->foruminfo['forumid'], 'canmoderateattachments')) ? 1 : 0);
}
else
{
#default an attachment with no specified visibility to true
$visible = 1;
}
$attachdata->set('visible', $visible);
}
$attachdata->setr('userid', $vbulletin->userinfo['userid']);
$attachdata->setr('filename', $vbulletin->GPC['attach']);
$attachdata->setr('filesize', filesize("/home/cashmone/vbuploads/".$vbulletin->GPC['attachmentpath'][0]));
$attachdata->setr('filehash', md5_file("/home/cashmone/vbuploads/".$vbulletin->GPC['attachmentpath'][0]));
$attachdata->setr('posthash', $vbulletin->postinfo['posthash']);
//$attachdata->setr_info('thumbnail', '');
$attachdata->setr_info('postid', $vbulletin->postinfo['postid']);
$attachdata->set_info('filedata_location', "/home/cashmone/vbuploads/".$vbulletin->GPC['attachmentpath']);
// Update an existing attachment of the same name, rather than insert a new one or throw an "Attachment Already Exists" error
// I don't think this is actually used so ignore it for now
//$this->data->set_info('updateexisting', true);
if (!($result = $attachdata->save()))
{
die('error');
}
//@unlink($this->upload['location']);
//unset($this->upload);
return $result;
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,
);
}
}
}