예제 #1
0
function plugins_releasemgt_file_delete($p_file_id)
{
    $t_upload_method = plugin_config_get('upload_method', UPLOAD_METHOD_DEFAULT);
    $c_file_id = db_prepare_int($p_file_id);
    $t_filename = plugins_releasemgt_file_get_field($p_file_id, 'filename');
    $t_diskfile = plugins_releasemgt_file_get_field($p_file_id, 'diskfile');
    if (DISK == $t_upload_method || FTP == $t_upload_method) {
        if (FTP == $t_upload_method) {
            $ftp = plugins_releasemgt_file_ftp_connect();
            file_ftp_delete($ftp, $t_diskfile);
            file_ftp_disconnect($ftp);
        }
        if (file_exists($t_diskfile)) {
            file_delete_local($t_diskfile);
        }
    }
    $t_file_table = plugin_table('file');
    $query = "DELETE FROM {$t_file_table}\n\t\t\t\tWHERE id='{$c_file_id}'";
    db_query($query);
    return true;
}
예제 #2
0
 $c_file_name = db_prepare_string($v_name);
 $c_file_type = db_prepare_string($v_type);
 $t_file_size = filesize($v_tmp_name);
 $t_max_file_size = (int) min(ini_get_number('upload_max_filesize'), ini_get_number('post_max_size'), config_get('max_file_size'));
 if ($t_file_size > $t_max_file_size) {
     trigger_error(ERROR_FILE_TOO_BIG, ERROR);
 }
 $c_file_size = db_prepare_int($t_file_size);
 $t_method = config_get('file_upload_method');
 switch ($t_method) {
     case FTP:
     case DISK:
         file_ensure_valid_upload_path($t_file_path);
         if (FTP == $t_method) {
             $conn_id = file_ftp_connect();
             file_ftp_delete($conn_id, $t_disk_file_name);
             file_ftp_put($conn_id, $t_disk_file_name, $v_tmp_name);
             file_ftp_disconnect($conn_id);
         }
         if (file_exists($t_disk_file_name)) {
             file_delete_local($t_disk_file_name);
         }
         if (!move_uploaded_file($v_tmp_name, $t_disk_file_name)) {
             trigger_error(ERROR_FILE_MOVE_FAILED, ERROR);
         }
         chmod($t_disk_file_name, config_get('attachments_file_permissions'));
         $c_content = '';
         break;
     case DATABASE:
         $c_content = db_prepare_binary_string(fread(fopen($v_tmp_name, 'rb'), $v_size));
         break;
예제 #3
0
function file_delete($p_file_id, $p_table = 'bug')
{
    $t_upload_method = config_get('file_upload_method');
    $c_file_id = db_prepare_int($p_file_id);
    $t_filename = file_get_field($p_file_id, 'filename', $p_table);
    $t_diskfile = file_get_field($p_file_id, 'diskfile', $p_table);
    if ($p_table == 'bug') {
        $t_bug_id = file_get_field($p_file_id, 'bug_id', $p_table);
        $t_project_id = bug_get_field($t_bug_id, 'project_id');
    } else {
        $t_project_id = file_get_field($p_file_id, 'project_id', $p_table);
    }
    if (DISK == $t_upload_method || FTP == $t_upload_method) {
        if (FTP == $t_upload_method) {
            $ftp = file_ftp_connect();
            file_ftp_delete($ftp, $t_diskfile);
            file_ftp_disconnect($ftp);
        }
        $t_local_disk_file = file_normalize_attachment_path($t_diskfile, $t_project_id);
        if (file_exists($t_local_disk_file)) {
            file_delete_local($t_local_disk_file);
        }
    }
    if ('bug' == $p_table) {
        # log file deletion
        history_log_event_special($t_bug_id, FILE_DELETED, file_get_display_name($t_filename));
    }
    $t_file_table = db_get_table('mantis_' . $p_table . '_file_table');
    $query = "DELETE FROM {$t_file_table}\n\t\t\t\tWHERE id=" . db_param();
    db_query_bound($query, array($c_file_id));
    return true;
}
예제 #4
0
function file_delete($p_file_id, $p_table = 'bug')
{
    $t_upload_method = config_get('file_upload_method');
    $c_file_id = db_prepare_int($p_file_id);
    $t_filename = file_get_field($p_file_id, 'filename', $p_table);
    $t_diskfile = file_get_field($p_file_id, 'diskfile', $p_table);
    if (DISK == $t_upload_method || FTP == $t_upload_method) {
        if (FTP == $t_upload_method) {
            $ftp = file_ftp_connect();
            file_ftp_delete($ftp, $t_diskfile);
            file_ftp_disconnect($ftp);
        }
        if (file_exists($t_diskfile)) {
            file_delete_local($t_diskfile);
        }
    }
    if ('bug' == $p_table) {
        # log file deletion
        $t_bug_id = file_get_field($p_file_id, 'bug_id', 'bug');
        history_log_event_special($t_bug_id, FILE_DELETED, file_get_display_name($t_filename));
    }
    $t_file_table = config_get('mantis_' . $p_table . '_file_table');
    $query = "DELETE FROM {$t_file_table}\n\t\t\t\tWHERE id='{$c_file_id}'";
    db_query($query);
    return true;
}