ツイート
2020.10.29
HTML(Javascript)とperlでドラッグ&ドロップでファイルをアップロードする最小スクリプト
個人的メモ。スマホでは使えないのが残念。
HTML側↓※タグの<>を大文字で表記しております。
---------------------------------
<html><head><meta charset="UTF-8"><head>
<script src="http://code.jquery.com/jquery-1.12.4.js"></script>
<script type="text/javascript">
function PageLoad(e) {
var dropFrame = document.getElementById('DropFrame');
dropFrame.addEventListener('dragover', onDragOver, false);
dropFrame.addEventListener('drop', onDrop, false);
}
function onDragOver(e){
e.preventDefault();
}
function onDrop(e) {
e.stopPropagation();
e.preventDefault();
var files = e.dataTransfer.files;
for(var i= 0;i < files.length;i++){uploadFile(files[i]);}
}
function uploadFile(file){
var formData = new FormData();
formData.append('file', file);
$.ajax({
async: true,
type: 'POST',
contentType: false,
processData: false,
url: 'drop.cgi',
data: formData,
dataType :'html'
}).done(function(html){
alert(html);
});
}
$(function(){
PageLoad();
});
</script></head>
<body>
<div id="DropFrame" style="border:solid 1px; width:360px; height:240px;">drop file here</div>
</body></html>
---------------------------------
Perlスクリプト「drop.cgi」側
---------------------------------
#!/usr/local/bin/perl
use File::Basename;
use File::Copy;
use CGI;
#転送最大サイズ
$CGI::POST_MAX = 1024 * 100000; #100MB
$q = new CGI;
print "Content-type: text/html\n\n";
binmode STDOUT;
if (!defined($filename) and $error = $q->cgi_error){
print 'file size error';
exit;
}
my $fp = $q->upload('file');
my $fname = basename($q->param('file'));
if ($fname eq "./"){
print 'file error';
exit;
}
copy ($fp, "./data/$fname");
undef $q;
print "ok upload!".$fname;
exit;
------------------------------------
HTML5とかでもっと簡単に出来るんだっけ?
- アップロードの進捗をリアルタイム表示
- 複数ファイル同時転送
Category:Perl・Javascript・python、サーバー管理メモ
Keyword:Java/50
コメント
この記事のアクセス数:5162025.01.25正規表現のオンラインWebチェッカー
2021.12.05中国のSippedが50ドルQVGAののToFカメラユニットを今年中に出荷開始。UVC、UART/SPI出力3コメ
2021.12.05Pythonのコードをワンラインで実行形式に変換してくれるPyInstaller1コメ
2021.12.03チャート、グラフを書くのに良さそうなGoogle Chart以外のJavascriptライブラリ5つ3コメ
2021.11.18まだ使ってる?今は非推奨となったJavaScriptの書き方。document.writeが強く非推奨だと!!!?4コメ
2021.10.19PerlのGD::Image->new()は画像じゃないデータを読み込ませるとエラーになることがあるので事前に手動で画像であることを確認した方が良い1コメ
2021.10.12【解決済み】ヨドバシとかZOZOのサイトにどうやってもスクリプトからアクセス出来ない16コメ
2021.08.31現代的なPerlの記述方法一覧2コメ
2021.07.09JavaScriptでワンタッチで仮想キーボードを表示する2コメ
2021.02.10PythonでPowerPointを作るライブラリ「python-pptx」が色々活用出来そう。22コメ
→カテゴリー:Perl・Javascript・python、サーバー管理メモ(記事数:82)
アクセス数の多い記事(過去1ヶ月)
●2025.03.20:どんな不都合が・・・(未分類)680access
●2025.03.14:8年ぶりにサンライズ出雲に乗車!家族4人で「ソロ個室」4部屋に上り乗車したメモ(#おでかけ情報)480access
●2024.09.15:我らがトライアル。ベトナム米を販売開始!(#グルメ・料理)477access
●2025.03.16:大量のレモンを余さず果汁絞るのが難しい。安い絞り器はクソばかり(#自宅DIY #ルーフテラス活用)445access
●2025.03.11:初めての焼き肉きんぐ(物語コーポレーション)の株主優待お食事券をゲット!!!!!優待・配当利回り年率3%程度(#お金 #マネー)362access
Java
Java 2025/04/01 08:46:イーロン・マスク率いるDOGEが6000万行ものCOBOLコードを含む社会保障局のシステムをコード生成AIでわずか数カ月の内に移行させようとしており危険性が指摘されている(はてなブックマーク - 人気エントリー - 総合) 2025/04/01 08:18:イーロン・マスク率いるDOGEが6000万行ものCOBOLコードを含む社会保障局のシステムをコード生成AIでわずか数カ月の内に移行させようとしており危険性が指摘されている(GIGAZINE) 2025/03/30 01:48:「CSS効いてない。なんで!?」って2時間ぐらい悩んでたら、先輩に「Chromeのシークレットモードで見てみ?」って言われて秒で解決した。これエンジニア界の常識なのか?(はてなブックマーク - 人気エントリー - 総合) 2025/03/26 15:10:マイナンバーのシステム開発の現場 2019?2020(ザード@) - カクヨム(はてなブックマーク - 人気エントリー - 総合) 2025/03/25 13:52:アピリッツ---子会社によるJUTJOY の株式取得 - 最新株式ニュース(ザイ・オンライントップ) |