お世話になっております。
表題につき、試行錯誤行いましたが解決に至りませんので質問させて頂きたく思います。
お手数おかけ致しますがご教授いただければと思います。
前提・実現したいこと
流れとしましては
- dropzone.jsを利用してファイルをアップロードする
- ファイルのパスと日付MySQLに格納する
- ファイルを書き込みしたディレクトリに移動する
- foreachで表示する
というような形になります。
データベースは
0. ID
0. 日付
0. ファイルパス
の構成です。
下記ソースコードですと
アップロード、指定ディレクトリへの保存のみ実現しております。
該当のソースコード
html
1<div id="upload"> 2 <div> 3 <div class="dropzone" id="drop_area"></div> 4 </div> 5 <div id="preview_area"></div> 6</div>
js
1$(function () { 2 Dropzone.autoDiscover = false; 3 $("#drop_area").dropzone({ 4 url: "class/LogUpload.php", 5 paramName: "file", 6 paralleUploads: 1, 7 maxFiles: 1, 8 dictInvalidFileType: "画像ファイルのみアップロードが可能です。", 9 dictDefaultMessage: "Click or D&D", 10 previewsContainer: "#preview_area", 11 }); 12});
php
1<?php 2setlocale(LC_ALL, 'ja_JP.UTF-8'); 3date_default_timezone_set('Asia/Tokyo'); 4 5$date = date('Y/m/d H:i:s'); 6$ds = DIRECTORY_SEPARATOR; 7$storeFolder = '..\images\Log'; //アップロード先フォルダ 8$targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds; 9 10if (!empty($_FILES)) { 11 $tempFile = $_FILES['file']['tmp_name']; 12 $filename = basename($_FILES['file']['name']); 13 $ext = get_ext($_FILES['file']['name']); 14 $rename = date('YmdHis').$ext; 15 16 rename($filename,$rename); 17 $targetFile = $targetPath. $rename; 18 uploadLog($targetFile); 19 move_uploaded_file($tempFile,$targetFile); 20}else{ 21 echo '失敗!'; 22} 23 24function get_ext($file_name){ 25 $p = pathinfo($file_name); 26 if ( isset($p['extension']) ){ 27 return '.'.$p['extension']; 28 } 29 else{ 30 return ''; 31 } 32} 33 34function uploadLog($name='error'){ 35 $date = date('Y/m/d H:i:s'); 36 $dbh = PDOconnect(); 37 $sql = 'INSERT INTO '.TB_Log.' (date,filepath) VALUES (:date,:filepath)'; 38 $stmt = $dbh -> prepare($sql); 39 $stmt -> execute(array( 40 ":date" => $date, 41 ":filepath" => $name 42 )); 43} 44
試したこと
SQLがそもそも間違っているのでは?functionファイルが間違っているのでは?といろいろ試行錯誤行いましたが思ったような挙動は得られませんでした。
以前別のプロジェクトで利用した際はCSVの書き込みを行いましたが問題なく動作しておりました。
move_uploaded_file($tempFile,$targetFile)
が何か引っかかっているのではないか、と当たりはつけておりますが回避方法が見つけられておりません。
補足情報(FW/ツールのバージョンなど)
Dropzone : 5.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。