Esempio n. 1
0
 public function create()
 {
     $model = new PostModel();
     if (isset($_POST['PostModel'])) {
         $model->setAttributes($_POST['PostModel']);
         $model->setUser_email($_POST['PostModel']['user_email']);
         $model->save();
         $this->redirect('index');
     }
     $GLOBALS['model'] = $model;
     $this->render('form');
 }
Esempio n. 2
0
 public function actionSave($id = null)
 {
     $user = UserModel::isAuthorized();
     if (!$user) {
         $this->redirect("/user/auth");
     }
     $input = \System\Engine::getInput();
     $data = $input->getArray("data");
     $data = array_intersect_key($data, array_flip(['title', 'content']));
     $data['user_id'] = $user->id;
     if ($id) {
         $post = PostModel::get($id);
         Validate::check($post->user_id == $user->id, "У вас не прав для редактирования этого блога", 403);
     } else {
         $post = new PostModel();
     }
     $post->setData($data);
     $post->save();
     $this->redirect("/");
 }
Esempio n. 3
0
function rest_post()
{
    include "serverconfig.php";
    include "./image_test/dbconfig.php";
    $debug_msg = '';
    // echo "saveHTMLFile filename: ".$_FILES ['html_file'] ['name'];
    if (!isset($_FILES['html_file'])) {
        $debug_msg = "업로드 파일 존재하지 않음";
        return $debug_msg;
    }
    if ($_FILES['html_file']['error'] > 0) {
        switch ($_FILES['html_file']['error']) {
            case 1:
                $debug_msg = "php.ini 파일의 upload_max_filesize 설정값을 초과함(업로드 최대용량 초과)";
                return $debug_msg;
            case 2:
                $debug_msg = "Form에서 설정된 MAX_FILE_SIZE 설정값을 초과함(업로드 최대용량 초과)";
                return $debug_msg;
            case 3:
                $debug_msg = "파일 일부만 업로드 됨";
                return $debug_msg;
            case 4:
                $debug_msg = "업로드된 파일이 없음";
                return $debug_msg;
            case 6:
                $debug_msg = "사용가능한 임시폴더가 없음";
                return $debug_msg;
            case 7:
                $debug_msg = "디스크에 저장할수 없음";
                return $debug_msg;
            case 8:
                $debug_msg = "파일 업로드가 중지됨";
                return $debug_msg;
            default:
                $debug_msg = "시스템 오류가 발생";
                return $debug_msg;
        }
        // switch
    }
    $ableExt = array('html');
    $path = pathinfo($_FILES['html_file']['name']);
    $ext = strtolower($path['extension']);
    if (!in_array($ext, $ableExt)) {
        $debug_msg = "허용되지 않는 확장자입니다.";
        return $debug_msg;
    }
    $mysqli = new mysqli($dbhost, $dbusr, $dbpass, $dbname);
    if ($mysqli->connect_errno) {
        echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }
    // $create_table = "CREATE TABLE if not exists posts (
    // id int auto_increment,
    // user_id varchar(30),
    // title varchar(100),
    // upload_filename varchar(100),
    // db_filename varchar(100),
    // filepath varchar(100),
    // filesize int(8),
    // file_type VARCHAR(40),
    // upload_date DATETIME DEFAULT CURRENT_TIMESTAMP,
    // thumb_img_path varchar(100),
    // category varchar(20),
    // rank float,
    // PRIMARY KEY (id)
    // );";
    // $mysqli->query ( $create_table );
    do {
        // 6. 새로운 파일명 생성(마이크로타임과 확장자 이용)
        $time = explode(' ', microtime());
        $fileName = $time[1] . substr($time[0], 2, 6) . '.' . strtoupper($ext);
        // 중요 이미지의 경우 웹루트(www) 밖에 위치할 것을 권장(예제 편의상 아래와 같이 설정)
        $filePath = 'http://localhost:8080/web_test/image_test/upload_html/';
        // $_SERVER ['DOCUMENT_ROOT'] . '/web_test/image_test/upload_html/';
        $fileServerPath = $_SERVER['DOCUMENT_ROOT'] . '/web_test/image_test/upload_html/';
        if (!is_dir($fileServerPath)) {
            @mkdir($fileServerPath);
        }
        // 7. 생성한 파일명이 DB내에 존재하는지 체크
        $query = sprintf("SELECT no FROM image_files WHERE db_filename = '%s'", $fileName);
        $result = $mysqli->query($query);
        if ($result === NULL) {
            break;
        }
        // 생성한 파일명이 중복하는 경우 새로 생성해서 체크를 반복(동시저장수가 대량이 아닌경우 중복가능 희박)
    } while ($result != NULL && $result->num_rows > 0);
    // db에 저장할 정보 가져옴
    $upload_filename = $_FILES['html_file']['name'];
    //$mysqli->real_escape_string ( $_FILES ['html_file'] ['name'] );
    $file_size = $_FILES['html_file']['size'];
    $file_type = $_FILES['html_file']['type'];
    // set time to Seoul.
    date_default_timezone_set("Asia/Seoul");
    $upload_date = date("Y-m-d H:i:s");
    // create and save thumbnail
    $thumbPath = 'http://localhost:8080/web_test/image_test/thumbnails/';
    $thumb_url = isset($_POST['thumb_img_url']) ? $_POST['thumb_img_url'] : null;
    $thumbimagename = save_thumbnail($thumb_url);
    // 	$mysqli->autocommit ( false );
    // 	$query = sprintf ( "INSERT INTO posts
    // 		(user_id, title, upload_filename,db_filename,filepath,filesize,file_type,upload_date,thumb_img_path,category)
    // 		VALUES ('%s', '%s', '%s','%s','%s','%s','%s','%s','%s','%s')", $_POST ["user_id"], $_POST ["title"], $upload_filename, $fileName, $filePath, $file_size, $file_type, $upload_date, $thumbimagename, $_POST ["category"] );
    // 	$mysqli->query ( $query );
    $insert_id = NULL;
    if (move_uploaded_file($_FILES['html_file']['tmp_name'], $fileServerPath . $fileName)) {
        $post = new PostModel();
        $post->prepareDb();
        $post->user_id = $_POST["user_id"];
        $post->title = $_POST["title"];
        $post->upload_filename = $upload_filename;
        $post->db_filename = $fileName;
        $post->filepath = $filePath;
        $post->filesize = $file_size;
        $post->file_type = $file_type;
        $post->upload_date = $upload_date;
        $post->thumb_img_path = $thumbimagename;
        $post->category = $_POST["category"];
        $result = $post->save();
        $insert_id = $result['id'];
    }
    // 	if ($mysqli->error) {
    // 		echo "Failed to insert posts db: (" . $mysqli->error . ") ";
    // 	}
    // 	$insert_id = $mysqli->insert_id;
    // 	if ($mysqli->affected_rows > 0) {
    // 		// 9. 업로드 파일을 새로 만든 파일명으로 변경 및 이동
    // 		if (move_uploaded_file ( $_FILES ['html_file'] ['tmp_name'], $fileServerPath . $fileName )) {
    // 			$mysqli->commit ();
    // 		} else {
    // 			$mysqli->rollback ();
    // 			$debug_msg = "업로드 실패";
    // 			return $debug_msg;
    // 		} // if
    // 	}
    $html_saving_info = array("id" => $insert_id);
    // 	$mysqli->close ();
    if (isset($_POST['images_name'])) {
        $html_saving_info['ret_detail'] = insert_post_images($insert_id, $_POST['images_name']);
    }
    $html_saving_info['ret_val'] = "success";
    return $html_saving_info;
}
Esempio n. 4
0
 * as an AuthorModel property, but it will
 * be saved. 
 */
$author = new AuthorModel();
$author->username = "******";
$author->name = "Cesar Rodas";
$author->country = "PY";
$author->save();
/* Add one blog post */
$post = new PostModel();
$post->uri = "/hello-world";
$post->title = "Hello World";
$post->author = $author->getID();
/* add one comment */
$post->add_comment("testing", "*****@*****.**", "testing comment");
$post->save();
/* add another comment */
$post->add_comment("testing", "*****@*****.**", "cool post");
$post->save();
for ($i = 0; $i < 1000; $i++) {
    /* Add another post */
    $post->reset();
    /* reet the post object */
    $post->uri = "/" . uniqid();
    $post->title = "Yet another post ({$i})";
    $post->author = $author->getID();
    $post->save();
}
/* Clean up the current the resultset */
/* same as $post = null; $post = new Post Model */
/* but more efficient */