11月前半ですけど寒くなってきましたね。鍋の季節!!
さて、ファイルのアップロード機能について
HTML5 のDrag & Drop、Ajax(jQuery)送信、PHP(cakePHP 2.1.x)の受信の
実装などについてメモです。
(客先見積りの関係で調べてましたが、結構ハマリました。)
動作確認は、Chromeのみです。
cakePHPの app/ 以下のみですが、Gitに置いてます。どうぞ。
https://github.com/kuc-arc-f/php_cake11
win版のXAMPPで開発 (unix版はそのまま動くか未定です。)
コンテキスト=cake11
============================================内容の説明など
[1] /cake11/posts/dnd6 で画面起動します。
div要素の [ここへ画像ドロップ] 領域にドロップします。
[2] アップロードされます。
(1個だけ、複数の場合はループ処理にすればできるはず!)
[3] Controller, ajaxの送信先は upload5()です。
class PostsController extends AppController {
public $helpers= array('html' ,'Form');
public function upload5(){
//var_dump( $_FILES['files']['name'] );
$uploadfile = "../webroot/img/" . $_FILES['file']['name'] ;
if (move_uploaded_file( $_FILES['file']['tmp_name'] , $uploadfile) == false ) {
$response = array('ret'=> "0");
echo json_encode($response );
exit();
}else{
$response = array('ret'=> "1");
echo json_encode($response );
exit();
}
}
public function dnd6(){
$this->set('title_for_layout', 'upload dnd5');
$this->layout = null;
}
}
[3] View (/ cake11 / app / View / Posts / dnd6.ctp)
ドロップされたら、
HTML5のFormDataに、form要素をセットし、
ajax送信してます、コールバックで、アップされたIMGを描画してます。
<script type="text/javascript">
function send_imgfile( files ){
$form = $("#hogeForm");
fd = new FormData($form[0]);
fd.append('file', files[0] );
$.ajax('/cake11/posts/upload5', {
type: 'post',
processData: false,
contentType: false,
data: fd,
dataType: 'html',
success: function(data){
console.log(data);
alert( 'complete send :'+files[0].name );
disp_items( files[0].name );
}
});
return false;
}
</script>
<div id="dropzone" ondragover="onDragOver(event)" ondrop="onDrop(event)">
<p>ここへ画像を<br />ドロップ</p>
</div>
<div id="id_form_div" style="display: none;">
<form id="hogeForm" method="post" action="" enctype="multipart/form-data">
<div><input type="file" name="file1"></div>
<div>ファイルの説明:<input type="text" name="hogeText"></div>
<input id="hogeSubmit" type="submit" value="うpする">
</form>
</div>
<script type="text/javascript">
function onDrop(event){
var files = event.dataTransfer.files;
send_imgfile( files );
event.preventDefault();
}
</script>
============================================
*) cakePHPの app/ 以下のみですが、Gitに置いてます。どうぞ。
https://github.com/kuc-arc-f/php_cake11
それでは、また会いましょう。
head
登録:
コメントの投稿 (Atom)
google colaboratory お試し編 、GPUも使える機械学習の環境構築
前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...
Social
-
前回の[IoT型電光掲示板]記事の続編となります、 マルチバイト(日本語)が表示できるように、全体的に修正してみました。 [概要] クラウド側から、UTF-8文字をMQTTで送信し、 M2M側(MCU間の通信)は、16進数のUTF-8文字コードを送信 前回ま...
-
SPI通信の、TFT ILI9341 ディスプレイを esp32 で試してみました。 # thanks /参考のページ https://github.com/MartyMacGyver/ESP32_Adafruit_ILI9341 LIB: https:/...
0 件のコメント:
コメントを投稿