• 締切済み

BASP21を利用してリネームファイルアップロード

Set basp = Server.CreateObject("basp21") を利用して、 FilePath = Server.MapPath("../pictures") & "\" & GyoushaBangou & "\" & FilePath leng = basp.FormSaveAs(postData,"UpFile",FilePath) のプログラムを使って、ファイルアップをしてます。 ローカルのデータ画像のアップに際して、同じ画像を上げる事が無いように、ファイル名に日付けなどを付け加え、名前を変えて同じ名前のファイルを上げる事が無いようにしたいのです。 現在の仕組みでは、リネームされない状態でアップロード出来て、アップロードした名前はデータベースに記録されるようになっています。 出来る方法を教えていただけないでしょうか! よろしく、お願いします。

みんなの回答

回答No.1

苦言ですみません。 basp を使いこなしたり DB への登録を VBScript で行うほどの知識を持っていて 「ファイル名に日付けなどを付け加え」 を調べられないのが不思議でしょうがない。 それを VBScript の機能で実現できるかどうかが不明だとしても 「vbscript 年 月 日 時 分 秒」 でググってみたりしないのでしょうか? 「vbscript 一時 ファイル名」 ってキーワードも思い浮かぶ。 VBScript で書いたサンプル。 Year などの関数で得た値を結合させれば良いと思う。 Dim fso Set fso = CreateObject("Scripting.FileSystemObject") WScript.Echo fso.GetTempName Dim dt dt = Now() WScript.Echo dt WScript.Echo Right("0000" & Year(dt), 4) WScript.Echo Right("00" & Month(dt), 2) WScript.Echo Right("00" & Day(dt), 2) WScript.Echo Right("00" & Hour(dt), 2) WScript.Echo Right("00" & Minute(dt), 2) WScript.Echo Right("00" & Second(dt), 2)

ono1954
質問者

お礼

苦言ですみません。の書き込み どうも、ありがとうございます。 もっともでして、その通りです。 実は、このプログラムは、私ではなく、以前に作られたもので、その後変更やらを門前小僧という訳で出来る範囲で直してきた、どちらかと言うと素人みたいなもんなんです。 いろいろと検索して「ファイル名に日付けなどを付け加え」という事は検索しまして、やって見たのですが、アップできなくて、結局解らないという状態なんです。 ご迷惑をかけない程度に、いろいろと情報を頂くなりして、解決したいと思っております。 ローカルの画像名をアップした際に、リサイズ、リネームをして、そのリネームされた画像名を、データベースに再登録させる必要が有ります。 これまでは、リサイズ無し、ローカルの名前通りでアップして来ました。 データが多くなり、複数のメンバーが登録するようになり、データの重複やサイズの不揃いを避ける為に、このような仕様に今のプログラムに付け加えたいと思っている次第です。 貴重なご意見と、参考になる事を書きとめて頂き、ありがとうございました。 書いてくださった事を元に、探してみます。 進展ありましたら、また、報告させてもらいます。 ご依頼できる方がおられるのが、一番いいのですがねえ!

関連するQ&A

  • Basp21に詳しい方!!

    まったくの初心者です。 送信するメールにファイル添付されるようにしたいのですが、 どうしてもエラーが出てしまいます。 どこが間違えていますか? ----------------------------------------------------------------------------------------------------------- 'Basp21でメールを送信します。 Set Basp = Server.CreateObject("basp21") tb = Request.TotalBytes br = Request.BinaryRead(tb) fn = Basp.FormFileName(br,"includedFile") fpath = Mid(fn,InstrRev(fn,"\")+1) leng = Basp.FormSaveAs(br,"includedFile",fpath) End If rc = Basp.SendMail(host, mailTo, mailFrom, subject, body, fpath) If rc = "" Then Response.Write "送信完了" Else Response.Write "送信失敗:" & rc End If set basp = Nothing

  • Basp21で大きなファイルのアップロード

    ファイルを4つ選択することができる画面があります。 アップロードボタンを押下すると選択したファイルを サーバーにアップします。 inputのnameは、File1~4です。 Basp21のページでは 大きなファイルは、FormSaveAsを複数回呼ぶ と書いてありました。 どんなループを回せばよいのか分かりません。 よろしくお願いします

  • BASP21によるbase64のデコードについて

    base64でエンコードされた画像ファイルを表示したいと思っています。 basp21でデコードして、BinaryWriteで書き出したんですがうまく表示できません。 CAPICOMを使った場合は正しく表示されます。 basp21でデコードする際になにか処理をはさむ必要があるのでしょうか? 以下作成したサンプルソースです。 ---ソース------------------------------------------ <%@ Language="VBScript" %> <% Set Stream = Server.CreateObject("ADODB.Stream") Set CAPIUtil = Server.CreateObject( "CAPICOM.Utilities" ) Set objBasp = Server.CreateObject("basp21") strEncoded = "/9j/kL・・base64でエンコードされたJpegファイル" strDecoded = CAPIUtil.Base64Decode( strEncoded ) strDecoded2 = objBasp.Base64(strEncoded, 1) Response.ContentType = "image/jpeg" ' Response.BinaryWrite strDecoded ' Response.BinaryWrite strDecoded2 %> ---------------------------------------------ここまで----- 以上よろしくお願いいたします。

  • BASP21 のようなコンポーネント

    Perl で使える BASP21 のようなDLLはないでしょうか。 サーバーからメールの受信と、ファイルアップなど できれば願ったり叶ったりなのですが・・・

    • ベストアンサー
    • Perl
  • BASPでのファイルアップロード

    お世話になります。 win2000でBASPを使って、ファイルのアップロードを行うプログラムを製作しています。 一つ目のASPファイルでアップロードするファイルを選択し、 これをSubmitして二つ目のASPファイルでファイルアップロード作業をするものです。 ネスケ6.2ではformsaveasが正常に動作したのですが、IEやネスケ4.7などではformsaveasが上手く働いてくれません(後述)。 できることなら保有するブラウザ全てで正常に動かしたいです。 しかし色々試したり調べたりしましたがどうしても自分だけの力では無理でした。 下記で二つ目のASPファイルで行う必要最低限のアップロード作業部分を載せました。 他にも載せようとしたら文字数オーバーだったので、ご容赦ください。 この保存作業部分で明らかに足りない何かがあったりしたら、そこをご指摘いただければ助かります。 Datasize = Request.TotalBytes B_Data = Request.BinaryRead(Datasize) Set objB = Server.CreateObject("basp21") strPath= "C:\test\" strname = objB.formfilename(b_data,"f_file") errno = objB.formsaveas(b_data,"f_file",strpath & strname) (この時点でerrnoに-3の値が入ってしまう=ファイルアップロード失敗) 読みづらい、分かりにくい質問で申し訳ないです。 分かる範囲でけっこうですので、ご協力よろしくお願いします。

  • 画像をアップするディレクトリの記述について

    ASP+VBSにてプログラミングしています。 画像をアップロードするためBASP21を使用し ローカルでのテストは正常に行われました。 ASPファイルをサーバにアップし実行したところ、 画像がアップされません。 BASP21サイトを見ると画像ファイルの保存ディレクトリの記述は e:\temp\log\ となっていますが、webサーバ上でのディレクトリを指定する 記述はどのようにすればいいのか教えていただきたく思っています。 相対アドレス ./img/ と指定したり 絶対アドレス /httpdocs/img/ と指定したり \img\ と色々と試してみたのですがアップされません。 よろしくお願いいたします。

  • basp21でのファイルアップロード確認画面

    BASP21を使用してファイルのアップえロードをしています. 現状で<input type=file>で選択したファイルを submitボタン押下でファイルのアップロードする所までは 期待どうりの動作しています. ここに、アップロード確認画面をつけくわえたいのですが 確認画面でどのようにファイルうけ渡せばよいか分からず困っています つまり、 1.ファイル選択画面   ・ファイル選択   ・submitボタン     ↓ 2.確認画面(アップロードするファイルのパス表示)   ・アップするファイルパス表示   ・submitボタン     ↓ 3.アップロード結果表示画面   (ここで始めてファイルのアップロード)   ということがしたいのです. しかし、2の状態でファイル情報を保持し、 3へ受け渡すのかが分かりません. どうか、お力添えお願いします.

  • ファイルがアップロードされずファイルパスが表示される

    $upfile = $param{'upfile'}; # マックバイナリ対策 if ($macbin) { $length = substr($upfile,83,4); $length = unpack("%N",$length); $upfile = substr($upfile,128,$length); } # 添付データを書き込み $imgfile = "$ImgDir$mynum$tail"; if (!open(OUT,"> $imgfile")) { if ($clip_err) { &check_ok; } } binmode(OUT); binmode(STDOUT); print OUT $upfile; close(OUT); chmod(0666,$imgfile); 全体像を示せなくてすみません。$tailは拡張子。 画像ファイルアップロードつき掲示板を作成しています。 惜しいところまでたどり着きました。 「添付」ファイル(画像)をアップロードすると フォルダーの中にコンピュータのファイルパスが記述された だけになります。↓ C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Sunset.jpg なぜ画像がアップロードされないのでしょうか? 画像のファイルパスがアップされます。 $paramのところが&Readparseを使って$inでないとダメなんで しょうか?&Readparseは呼び出しておりません。 元にした上手く画像がアップされるのは&Readparseで$inを 変数として使用しております。 しかし、いままで$paramでやってきてすべて$inに変えると 違うところがエラーが起こりそうです。 require "./jcode.pl"; require "./cgi-lib.pl"; を記述しています。 なにかヒントになることがあれば教えて頂きたいです。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • BASP21のFTPで日本語ファイル名文字コード変換方法

    BASP21のFTP機能を使って、ファイルをアップロードする処理を作成しています。 アップロード後、そのファイルをある文字列で検索して、 ファイルを読み込む処理があるのですが、検索されないため、 調べてみたところ、日本語ファイル名が文字化けしてるのがわかりました。 クライアントはWindowsなので、ファイル名は"Shift_JIS"です。 サーバーのプログラムでは、"UTF-8"で処理してるために検索されないことがわかりました。 ffftpなどのFTPソフトには、リモート側のファイル名漢字コードを設定する機能があり、 "UTF-8"でアップロードすることができましたが、BASP21には見当たりません。 いろいろ調べてもわからなかったため、ここで質問させてもらいました。

  • BASP21のエラーについて

    Windows XP Excel2003でBASP21を使用してメールを送信させています。 次のようなコードを使用して送信すると エラーの内容 "xxxsmtp.mail.yahoo.co.jp Closig transmission channel You must be pop-aut" 翻訳で ”あなたはホップアップ同型を伝送チャネルにする必要があり” Sub AB_jidou() Dim bobj, msg As String Dim Server As String, Mailto As String, MailFrom As String, Subject As String, Body As String Set bobj = CreateObject("basp21") ''BASP21オブジェクト Server = "xxxsmtp.mail.yahoo.co.jp" ''SMTPサーバー Mailto = "xxxx8743@xxxx.ne.jp" MailFrom = "xxxxxx0@xxx.ne.jp" ''差出し人 Subject = " 取引情報" ''タイトル Body = Sheets(1).Range("U34") ''本文 msg = bobj.SendMail(Server, Mailto, MailFrom, Subject, Body, "") Set bobj = Nothing If msg <> "" Then MsgBox msg End Sub ところが受信を実行するとそれ以降送信が可能になります。 プログラムが走っている間は良いのですが一度閉じてまた立ち上げると同じ症状になります。 その都度受信をするのは大変ですので何とかしたいのですがご存じの方教えてください。 よろしくお願いします