PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 5.0.2
Taskbuilder – Project Management & Task Management Tool With Kanban Board v5.0.2
6.0.6 6.0.5 6.0.2 6.0.3 6.0.4 6.0.1 6.0.0 5.0.8 5.0.9 4.0.9 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 All 58 releases
taskbuilder / includes / admin / tasks / open_task / wppm_upload_file.php

wppm_upload_file.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 5.0.2, at includes/admin/tasks/open_task/wppm_upload_file.php

103 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 // Exit if accessed directly
3 if ( ! defined( 'ABSPATH' ) ) exit;
4 if ( isset($_POST['wppm_upload_proj_attach_file']) && check_ajax_referer( 'wppm_upload_proj_attach_file', 'nonce', false ) != 1 ) {
5 wp_send_json_error( 'Unauthorised request!', 401 );
6 }
7 elseif ( isset($_POST['wppm_upload_file']) && check_ajax_referer( 'wppm_upload_file', 'nonce', false ) != 1 ) {
8 wp_send_json_error( 'Unauthorised request!', 401 );
9 }
10 global $wpdb;
11 $isError = false;
12 $errorMessege = '';
13 $attachment_id = 0;
14 if(!$_FILES){
15 $isError=true;
16 }
17 $upload_dir = wp_upload_dir();
18 $now = date("Y-m-d H:i:s");
19 $time = strtotime($now);
20 $month = date("m",$time);
21 $year = date("Y",$time);
22 $filename = sanitize_file_name($_FILES['file']['name']);
23 $path = $upload_dir['basedir'] . '/wppm/'.$year.'/'.$month.'/'.$_FILES['file']['name'];
24 $filetype_extention = wp_check_filetype_and_ext($path,$_FILES['file']['name']);
25 if( !$isError ){
26 switch ($filetype_extention['ext']){
27 case 'exe':
28 case 'php':
29 case 'js':
30 $isError = true;
31 $errorMessege = __('Error: file format not supported!','taskbuilder');
32 break;
33 }
34 if ( preg_match('/php/i', $filetype_extention['ext']) || preg_match('/phtml/i', $filetype_extention['ext']) ){
35 $isError=true;
36 $errorMessege=__('Error: file format not supported!','taskbuilder');
37 }
38 }
39
40 if( !$isError && $_FILES['file']['tmp_name']==''){
41 $isError = true;
42 $errorMessege = __('Error: file size exceeded allowed limit!','taskbuilder');
43 }
44
45 if( !$isError ){
46 if (!file_exists($upload_dir['basedir'] . '/wppm/'.$year)) {
47 mkdir($upload_dir['basedir'] . '/wppm/'.$year, 0755, true);
48 }
49 if (!file_exists($upload_dir['basedir'] . '/wppm/'.$year.'/'.$month)) {
50 mkdir($upload_dir['basedir'] . '/wppm/'.$year.'/'.$month, 0755, true);
51 }
52
53 $file_name = sanitize_file_name($_FILES['file']['name']);
54 if(!empty($file_name)){
55 $save_file_name = str_replace(' ','_',$file_name);
56 $save_file_name = str_replace(',','_',$file_name);
57 $save_file_name = explode('.', $save_file_name);
58 }else{
59 $save_file_name ="";
60 }
61
62 $img_extensions = array('png','jpeg','jpg','bmp','pdf','gif','PNG','JPEG','JPG','BMP','PDF','GIF');
63 //$extension = $save_file_name[count($save_file_name)-1];
64 if(!in_array($filetype_extention['ext'], $img_extensions)){
65 $extension = $filetype_extention['ext'].'.txt';
66 $is_image = 0;
67 } else {
68 $is_image = 1;
69 }
70 unset( $save_file_name[count($save_file_name)-1] );
71 $save_file_name = implode('-', $save_file_name);
72 $save_file_name = time().'_'.preg_replace('/[^A-Za-z0-9\-]/', '', $save_file_name).'.'.$filetype_extention['ext'];
73 $save_directory = $upload_dir['basedir'] . '/wppm/'.$year.'/'.$month.'/'.$save_file_name;
74 move_uploaded_file( $_FILES['file']['tmp_name'], $save_directory );
75 }
76 $save_file_name = esc_sql($save_file_name);
77 $file_name = esc_sql($file_name);
78 $save_directory = $save_directory;
79 $is_image = esc_sql($is_image);
80 $now = esc_sql($now);
81 $values=array(
82 'name'=>$save_file_name,
83 'file_name'=> $file_name,
84 'file_path'=>$save_directory,
85 'is_image'=>$is_image,
86 'is_active'=>0,
87 'is_uploaded'=>0,
88 'date_created'=>$now
89 );
90
91 $wpdb->insert($wpdb->prefix.'wppm_attachments',$values);
92 $attachment_id= $wpdb->insert_id;
93 $errorMessege=__('done','taskbuilder');
94
95 $isError=($isError)?'yes':'no';
96
97 $response = array(
98 'error' => $isError,
99 'errorMessege' => $errorMessege,
100 'id' => $attachment_id
101 );
102
103 echo json_encode($response);