示例#1
0
                        // Make a good name
                        $orig_name = preg_replace("/[^A-Z0-9._-]/i", "_", $filename);
                        $filename = time() . "_" . $orig_name;
                        $i = 0;
                        $parts = pathinfo($filename);
                        while (file_exists(dirname(__DIR__) . '/' . $f3->get("UPLOADS") . $filename)) {
                            $i++;
                            $filename = $parts["filename"] . "-" . $i . "." . $parts["extension"];
                        }
                        $newfile = new \Model\Issue\File();
                        $newfile->issue_id = $issue->id;
                        $newfile->user_id = $user->id;
                        $newfile->filename = $orig_name;
                        $newfile->disk_filename = $f3->get("UPLOADS") . $filename;
                        $newfile->disk_directory = $f3->get("UPLOADS");
                        $newfile->filesize = $file['size'];
                        $newfile->content_type = $file['type'];
                        $newfile->digest = md5($attachment['attachment']);
                        $newfile->created_date = date("Y-m-d H:i:s");
                        $newfile->save();
                        $fp = fopen(dirname(__DIR__) . '/' . $f3->get("UPLOADS") . $filename, "w+");
                        fwrite($fp, $attachment['attachment']);
                        fclose($fp);
                    }
                }
            }
        }
    }
}
// close the connection
imap_close($inbox);
示例#2
0
 /**
  * POST /issues/upload
  * Upload a file
  *
  * @param \Base $f3
  * @param array $params
  * @throws \Exception
  */
 public function upload($f3, $params)
 {
     $user_id = $this->_userId;
     $issue = new \Model\Issue();
     $issue->load(array("id=? AND deleted_date IS NULL", $f3->get("POST.issue_id")));
     if (!$issue->id) {
         $f3->error(404);
         return;
     }
     $web = \Web::instance();
     $f3->set("UPLOADS", "uploads/" . date("Y") . "/" . date("m") . "/");
     if (!is_dir($f3->get("UPLOADS"))) {
         mkdir($f3->get("UPLOADS"), 0777, true);
     }
     $overwrite = false;
     // set to true to overwrite an existing file; Default: false
     $slug = true;
     // rename file to filesystem-friendly version
     // Make a good name
     $orig_name = preg_replace("/[^A-Z0-9._-]/i", "_", $_FILES['attachment']['name']);
     $_FILES['attachment']['name'] = time() . "_" . $orig_name;
     $i = 0;
     $parts = pathinfo($_FILES['attachment']['name']);
     while (file_exists($f3->get("UPLOADS") . $_FILES['attachment']['name'])) {
         $i++;
         $_FILES['attachment']['name'] = $parts["filename"] . "-" . $i . "." . $parts["extension"];
     }
     $web->receive(function ($file) use($f3, $orig_name, $user_id, $issue) {
         if ($file['size'] > $f3->get("files.maxsize")) {
             return false;
         }
         $newfile = new \Model\Issue\File();
         $newfile->issue_id = $issue->id;
         $newfile->user_id = $user_id;
         $newfile->filename = $orig_name;
         $newfile->disk_filename = $file['name'];
         $newfile->disk_directory = $f3->get("UPLOADS");
         $newfile->filesize = $file['size'];
         $newfile->content_type = $file['type'];
         $newfile->digest = md5_file($file['tmp_name']);
         $newfile->created_date = date("Y-m-d H:i:s");
         $newfile->save();
         $f3->set('file_id', $newfile->id);
         return true;
         // moves file from php tmp dir to upload dir
     }, $overwrite, $slug);
     if ($f3->get("POST.text")) {
         $comment = new \Model\Issue\Comment();
         $comment->user_id = $this->_userId;
         $comment->issue_id = $issue->id;
         $comment->text = $f3->get("POST.text");
         $comment->created_date = $this->now();
         $comment->file_id = $f3->get('file_id');
         $comment->save();
         if (!!$f3->get("POST.notify")) {
             $notification = \Helper\Notification::instance();
             $notification->issue_comment($issue->id, $comment->id);
         }
     } elseif ($newfile->id && !!$f3->get("POST.notify")) {
         $notification = \Helper\Notification::instance();
         $notification->issue_file($issue->id, $f3->get("file_id"));
     }
     $f3->reroute("/issues/" . $issue->id);
 }