# taskbuilder/6.0.6/includes/admin/tasks/open_task/wppm_upload_file.php

Taskbuilder – Project Management &amp; Task Management Tool With Kanban Board, version 6.0.6. 113 lines.

- Page: https://pluginprobe.com/plugins/taskbuilder/6.0.6/code/includes/admin/tasks/open_task/wppm_upload_file.php
- Raw: https://pluginprobe.com/plugins/taskbuilder/6.0.6/raw/includes/admin/tasks/open_task/wppm_upload_file.php
- Modified: 2026-08-26T12:08:58+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/taskbuilder/6.0.6/code/includes/admin/tasks/open_task/wppm_upload_file.php#L10-L20`.

```php
<?php
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) exit;
global $wpdb,$wppmfunction,$current_user;

$nonce_valid = check_ajax_referer( 'wppm_upload_proj_attach_file', 'nonce', false ) === 1 || check_ajax_referer( 'wppm_upload_file', 'nonce', false ) === 1;
if ( ! $nonce_valid ) {
    wp_send_json_error( 'Unauthorized request!', 403 );
}
$has_upload_action = isset($_POST['action']) && ( $_POST['action'] === 'wppm_upload_proj_attach_file' || $_POST['action'] === 'wppm_upload_file');

if ( ! $has_upload_action ) {
    wp_send_json_error('Unauthorized', 401);
}
$isError       = false;
$errorMessege  = '';
$attachment_id = 0;
if(!$_FILES){
    $isError=true;
}
$upload_dir = wp_upload_dir();
$now   = wp_date("Y-m-d H:i:s");
$time  = strtotime($now);
$month = wp_date("m",$time);
$year  = wp_date("Y",$time);
$filename = isset( $_FILES['file']['name'] ) ? sanitize_file_name( $_FILES['file']['name'] ) : '';
if ( ! $filename ) {
    wp_send_json_error( esc_html__( 'No file uploaded.', 'taskbuilder' ), 400 );
}
$path = $upload_dir['basedir'] . '/wppm/'.$year.'/'.$month.'/'.$filename;
$filetype_extention = wp_check_filetype_and_ext($path,$filename);

if( !$isError ){
  if (!file_exists($upload_dir['basedir'] . '/wppm/'.$year)) {
    mkdir($upload_dir['basedir'] . '/wppm/'.$year, 0755, true);
  }
  if (!file_exists($upload_dir['basedir'] . '/wppm/'.$year.'/'.$month)) {
      mkdir($upload_dir['basedir'] . '/wppm/'.$year.'/'.$month, 0755, true);
  }
  switch ($filetype_extention['ext']){
    case 'exe':
    case 'php':
    case 'js':
        $isError      = true;
        $errorMessege = esc_html__( 'Error: file format not supported!', 'taskbuilder' );
        break;
  }
  if ( preg_match('/php/i', $filetype_extention['ext']) || preg_match('/phtml/i', $filetype_extention['ext']) ){
    $isError=true;
    $errorMessege=esc_html__('Error: file format not supported!','taskbuilder');
  }
}

if( !$isError && $_FILES['file']['tmp_name']==''){
  $isError      = true;
  $errorMessege = esc_html__( 'Error: file size exceeded allowed limit!', 'taskbuilder' );
}

if( !$isError ){
  $file_name = sanitize_file_name($_FILES['file']['name']);
  if(!empty($file_name)){
    $save_file_name = str_replace(' ','_',$file_name);
  }

  // if (!file_exists($upload_dir['basedir'] . '/wppm/'.$year.'/'.$month)) {
  //     mkdir($upload_dir['basedir'] . '/wppm/'.$year.'/'.$month, 0755, true);
  // }
  if(!empty($filename)){
    $save_file_name = str_replace(' ','_',$filename);
    $save_file_name = str_replace(',','_',$save_file_name);
    $save_file_name = explode('.', $save_file_name);
  }else{
    $save_file_name ="";
  }
  
  $img_extensions = array('png','jpeg','jpg','bmp','pdf','gif','PNG','JPEG','JPG','BMP','PDF','GIF');
  //$extension      = $save_file_name[count($save_file_name)-1];
  if(!in_array($filetype_extention['ext'], $img_extensions)){
    $extension = $filetype_extention['ext'].'.txt';
    $is_image = 0;
  } else {
    $is_image = 1;
  }
  unset( $save_file_name[count($save_file_name)-1] );
  $save_file_name = implode('-', $save_file_name);
  $save_file_name = time().'_'.preg_replace('/[^A-Za-z0-9\-]/', '', $save_file_name).'.'.$filetype_extention['ext'];
  $save_directory = $upload_dir['basedir'] . '/wppm/'.$year.'/'.$month.'/'.$save_file_name;
  move_uploaded_file( $_FILES['file']['tmp_name'], $save_directory );
}

$values=array(
  'name'=>$save_file_name,
  'file_name'=> $filename,
  'file_path'=>$save_directory,
  'is_image'=>$is_image,
  'is_active'=>0,
  'is_uploaded'=>0,
  'date_created'=>$now
);

$wpdb->insert($wpdb->prefix.'wppm_attachments',$values);
$attachment_id= $wpdb->insert_id;
$errorMessege=esc_html__('done','taskbuilder');

$isError=($isError)?'yes':'no';

$response = array(
    'error'        => $isError,
    'errorMessege' => $errorMessege,
    'id'           => $attachment_id
);

echo wp_json_encode($response);
```
