[Perl][Javascript]ファイルをドラッグ&ドロップでサーバにアップロードする

ファイルをドラッグ&ドロップしてサーバにアップロードする方法がやっとわかりました。
肝は以下のところです。

function uploadFile(file){
var formData = new FormData();
formData.append('file', file);
$.ajax({
  async: true,
  type: 'POST',
  contentType: false,
  processData: false,
  url: 'dndtest.cgi',
    data: formData,
    dataType :'html'
}).done(function(){});

ファイルをドラッグ&ドロップしてファイル名などを取得する方法は結構ネットにあがっていますけど、実際にそのファイルをサーバにアップロードする方法を解説するサイトがなく、苦労しました。

  1. FormDataを使う。
  2. ajaxでPOSTする。

ファイルをアップロードする箇所は以下の通りです。

my $q = new CGI;
my @fps = $q->upload('file');
my @fnames = $q->param('file');
my $idx = 0;
foreach my $fname(@fnames){
    $fname = basename($fname);
    copy($fps[$idx], "./test/$fname");
    $idx++;
}

$q->upload()を使うということになかなか気づきませんでした。

以下がソースです。複数ファイルのドラッグ&ドロップにも対応しています。
“[Perl][Javascript]ファイルをドラッグ&ドロップでサーバにアップロードする” の続きを読む

ブログ(WordPress)の投稿一覧を取得して、別のウェブサイトに表示する方法

ブログの更新情報を自分のウェブサイトで表示できるといいですね。
その方法です。

まず、ブログのRSSフィードから投稿一覧を取得する方法です。

#!/usr/bin/perl

use strict;
use warnings;
use XML::FeedPP;
use Time::Local;

my $url = 'http://my.blog.com/feed/';
my $feed = XML::FeedPP->new($url); #フィードを取得
my $line = "
    \n"; my $counter = 0; foreach($feed->get_item()){ #投稿を取得 $counter++; if($counter > 5){ #最新5件表示します。数はお好みで。 last; } my $date = substr($_->pubDate(), 0, 10); $date =~ s/\-/\./g; #日付の書式を 2017-01-17 から 2017.01.07へ。お好みで。 $line .= "
  • " . $date; $line .= " - "; $line .= "<a href = \"" . $_->link() . "\">"; $line .= $_->title() . "
  • \n"; } $line .= "
\n"; open(BLOG, ">", "./www/mywebsite/blogdata.html"); #このスクリプトを置いてあるところから、ウェブサイトを置いてあるとこまでのパス print BLOG $line; close(BLOG);

“ブログ(WordPress)の投稿一覧を取得して、別のウェブサイトに表示する方法” の続きを読む

2018年版 ウェブサイトを30分でレスポンシブ(スマホ対応)に90%実装する方法

手軽にウェブサイトをレスポンシブウェブデザイン(iPhoneなどのスマホに対応)にする方法です。

右側にメインコンテンツ部、左側にサイドメニューがある一般的なデザインで、スマホで見るとサイドメニューをメインコンテンツの下に表示するようにします。
スマホの判別は

@media screen and (max-width: 48em),screen and (max-device-width:480px)

でやります。
ホントは画面サイズによっていろんな要素の最大幅・最小幅を設定した方がいいのですが、とりあえずこれで80%対応できます。
凝りだすとたいへんなんですよね~。だから費用対効果のいいところでやめます。(笑)
“2018年版 ウェブサイトを30分でレスポンシブ(スマホ対応)に90%実装する方法” の続きを読む