- 締切済み
CGIに関して (Miniりすと)
下記URLにて入手可能なCGIを設置しましたが、 画像アップロード機能でpng形式だけアップロードできません。 以下のエラーメッセージが表示されます。 「ERROR! - アップロードできないファイル形式です」 CGI本体の設定項目も見つけられません。 アップロードできる形式とはあるのですが・・・。 imgフォルダも属性値777に設定してあります。 その他は問題なく動きます。 当方なにぶんズブのド素人で恐縮ですが問題を解りやすく ご指摘いただける方はいらっしゃいませんでしょうか? 何卒宜しくお願い申し上げます。 CGI配布場所 http://www.minicgi.net/cgi2/list.html
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
ざっとソースコードを眺めると、 アップロード時のContent-typeで判定しているようです。 http://ja.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions#Content-Type これが image/* だったら画像と判断しています。 ただ、これはブラウザによる自己申告なので、期待通りにしてくれるとは限りません。 検索したらこんなのがありました: http://d.hatena.ne.jp/kanonji/20100113/1263402605 技術向上を目的にするなら、御自身で修正するのがいいでしょうけど、 CGI設置が目的なら、サポートのあるものを探した方がよいでしょう。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
困りましたね。 Perlは、自然言語に近い言語で(それをやる方法は幾通りも存在する)が売りであるほど、様々な書き方があります。それが自由度を上げていると同時に他人の書いたプログラムを解析していくのが難しいという欠点にもなり、Python(パイソン)と対極をなします。 結果的に、自分が使用しようとするスクリプトを改造しようとすると、それを自分で読んで理解するしかないのです。自分がどうしても使いたいなら、その努力はしますが、そうでないと・・・・分かりますよね。たぶん数時間から数日かかるでしょう。 言いにくいですが、自分で解決するしかないのです。 まず、コードを読んでどこで何をしているかを理解してください。ifなら分岐ですし、forならループですし、$はスカラー変数ですし、@なら配列ですし・・、基本的なことは他の言語と変わりません。 どこかに、ファイルフォーマットを判断して分岐しているところがあるはずです。 頑張ってくださいとしかいえなくて申し訳ありません。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
CGIはサーバーでプログラムを実行させる物ですから、自身だけでなく同じサーバーを利用している他の方にも大きな被害を与えることがあります。 内容を理解して対処が出来るのは、そのCGIを設置するために最低限必要なレベルですよ。 >画像アップロード機能でpng形式だけアップロードできません。 たぶん違います。TIFFもBMPもPSDもTGAもSVGもダメだと思います。 単に画像をその先頭コードから判断しているのでしたら、その判定部分を書き直せばよいです。 拡張子/ファイル名はfile属性では、アップロードされませんから、画像形式はそのCGIないし、外部プログラムで判別しているのでしょう。 imageMagickなどを使用しているのでしたら、pngが扱える最新の物に変更するなど。 >当方なにぶんズブのド素人で恐縮ですが問題を解りやすくご指摘いただける方 それは無理です。せいぜい、CGIプログラムを上記を参考に見直してください。蛾精一杯です。まず、一行一行、何をしているかを理解してください。 >「ERROR! - アップロードできないファイル形式です」 アップロードできる画像はJPEG,GIFのみですと書き換えたらよいかと・・ とりあえずは、配布元に問い合わせるのが一番です。また、Q&Aやフォーラムがあるのでは??
補足
おっしゃりたいことは十分に理解しております。 配布元が既にサポートを終了していてサポート掲示板も停止しております。 どうしてもpng形式を扱うことが多いので困っておりました。 勿論形式をjpgなどに変換すればいいだけなのですが、スマホからのアップロード頻度が多いため、形式変更がユーザーの負担になり困っていた側面がございます。 自分が自身のスキルでできないことの身勝手さは重々承知ですが、助けていただきたく投稿致した次第であります…。