|
出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
Topに戻る
掲示板に戻る
検索
削除
管理者
|
![]()
フォルダを作成してファイルのアップロード
ミントさん
[2002/06/25 14:24:50]
[2218]
|
Re:フォルダを作成してファイルのアップロード
ミントさん
[2002/06/25 16:45:29]
[2219]
Re:フォルダを作成してファイルのアップロード
くっくさん
[2002/06/25 16:52:31]
[2220]
Re:フォルダを作成してファイルのアップロード
北岳さん
[2002/06/25 17:02:48]
[2221]
Re:フォルダを作成してファイルのアップロード
ミントさん
[2002/06/25 18:29:55]
[2222]
フォルダを作成して複数ファイルの同時アップロード
北岳さん
[2002/06/25 19:26:21]
[2223]
Re:フォルダを作成して複数ファイルの同時アップロード
ミントさん
[2002/06/26 9:30:25]
[2224]
自己レスです。出来ました!
ミントさん
[2002/06/26 10:27:35]
[2225]
|
| [2218] フォルダを作成してファイルのアップロード |
| 投稿者:ミントさん 2002/06/25 14:24:50 |
| はじめまして、ミントです。 いつも掲示板を拝見して勉強していますが、今日は分からない事があってカキコしました。 ASPで入力フォームを作成しています。やりたいことは下記の通りです。 @<INPUT Type=file〜>で選択したファイルを、登録ボタンを押したときに、サーバにある指定したディレクトリにフォルダを作成して、ファイルをアップロードさせたいのですが、そういうことはASPで出来ますか?また、fileボックスは3個ありますので繰り返し処理(VBScriptでDo〜LoopやFor〜Next等) A@でアップロードしたファイルのパスを取得して、テーブルに保存したいと思います。これは可能ですか? アドバイスを頂ける方、宜しくお願い致します。 *入力フォーム a_new.asp <HTML> <HEAD><TITLE>入力フォーム</TITLE></HEAD> <BODY> <FORM METHOD="POST" NAME="Form1"> <INPUT TYPE="file" NAME="a_id" VALUE="<%=kanrino%>"> 'kanrinoはフォームを開いたときに振られる番号です。 <INPUT TYPE="file" NAME="file1"> <INPUT TYPE="file" NAME="file2"> <INPUT TYPE="file" NAME="file3"> <INPUT TYPE="submit" NAME="a_add"> </FORM> |
| [2219] Re:フォルダを作成してファイルのアップロード |
| 投稿者:ミントさん 2002/06/25 16:45:29 |
| ミントです。 このページの過去ログからBASP21を見つけてサーバにインストールして テストをしています。 BASP21のFAQにあるサンプルソースはやってみたところ成功しました。 成功後、下記のように自分でVBScriptも入れて組んでみたのですが、 どうしてもフォルダを作成するところで、エラーが出てしまいます。 どのようにフォルダを作成すればいいでしょうか? お分かりになる方、アドバイスを宜しくお願い致します。 *入力フォーム a_new.asp <FORM>タグに「action="up_file.asp"」を追加し、下記 up_file.aspにフォーム内容を送信するようにしています。 *ファイル保存 up_file.asp <% Dim ObjFso,ObjFolder,ColFolder Dim GetFil,newf1,F_Path Dim bobj,a,b,Fol,F_Name,Up_F Set ObjFso = Server.CreateObject("Scripting.FileSystemObject") Set ObjFolder = ObjFso.GetFolder("D:\添付資料\anken") Set ColFolder = ObjFolder.SubFolders Fol = Request("a_id") ←全ページのテキストボックスリクエスト ColFolder.Add(Fol) ←Request("a_id")に入っているNoを名前にし、フォルダを作成。でも、ここが出来ません。 ObjFso.Close ObjFolder.Close ColFolder.Close F_Path = "D:\添付資料\" & Fol & "\" GetFil = Array("file1","file2","file3") i = 1 Do Until i > 5 If Fi <> "" Then Set bobj = Server.CreateObject("Basp21") a = Request.TotalBytes b = Request.BinaryRead(a) FName = bobj.FormFileName(b,GetFil(i-1)) newf1=Mid(FName,InstrRev(FName,"\")+1) Up_F = bobj.FormSaveAs(barray,GetFil(i-1),F_Path & newf1) End If i = i + 1 Loop %> <HTML><HEAD><TITLE>File Upload Test</TITLE> <BODY> <H1>Testing</H1> Path = <%=F_Path%><BR> FNAME = <%=FName%><BR> file1= <%=newf1%><BR> len1= <%=Up_F%><BR> </BODY></HTML> |
| [2220] Re:フォルダを作成してファイルのアップロード |
| 投稿者:くっくさん 2002/06/25 16:52:31 |
| > どうしてもフォルダを作成するところで、エラーが出てしまいます。 > どのようにフォルダを作成すればいいでしょうか? > お分かりになる方、アドバイスを宜しくお願い致します。 詳しくは分かりませんが、アクセス権は確認していますか? 書き込み権限などがないといけないのでは? |
| [2221] Re:フォルダを作成してファイルのアップロード |
| 投稿者:北岳さん 2002/06/25 17:02:48 |
| http://www.telemesse.ne.jp/fish_bird/asp3/vbscript/p003.html にある、 Set FSO = Server.CreateObject("Scripting.FileSystemObject") を用い、既存かどうかチェックして、 fold1="C:\Inetpub\www\sample" If FSO.FolderExists(fold1) =false then FSO.CreateFolder(fold1) でどうでしょう。 |
| [2222] Re:フォルダを作成してファイルのアップロード |
| 投稿者:ミントさん 2002/06/25 18:29:55 |
| くっくさん、北岳さんお返事ありがとうございました。 入力フォーム「a_new.asp」の<FORM>タグに「ENCTYPE="multipart/form-data"」を追加するのを忘れていました。すみません。 フォルダは事前に書きこみはOKにしてあるので確認したところ大丈夫でした。 北岳さんから教えていただいたように修正して、実行してみましたが Formからデータを取得できていませんでした。 それもそうですよね、Basp21使うように<FORM>タグを修正したんですから。それで、下記のように修正しました。 データは取得できますが、今度はFileSystemObjectが使えなくなりました。Basp21を使用するとFileSystemObjectは使用できなくなるのでしょうか? どうしても、「a_id」をフォルダ名にしたいのですが、いい方法があったら、お忙しいところすみませんが、アドバイスをお願い致します。 a = Request.TotalBytes b = Request.BinaryRead(a) Set bobj = Server.CreateObject("Basp21") Fol = bobj.Form(b,"a_id") Set ObjFso = Server.CreateObject("Scripting.FileSystemObject") fold1 = "D:\添付資料\" & Fol If ObjFso.FolderExists(fold1)=false Then ObjFso.CreateFolder(fold1) F_Path = "D:\添付資料\" & Fol & "\" |
| [2223] フォルダを作成して複数ファイルの同時アップロード |
| 投稿者:北岳さん 2002/06/25 19:26:21 |
| ----------------- /aspfold/1.asp ---------------- <HTML> <HEAD><TITLE>入力フォーム</TITLE></HEAD> <BODY> <p>ファイル送付 <% x=20020625 'この部分は修正して。 %> <FORM action="/aspfold/2.asp" METHOD="POST" ENCTYPE="multipart/form-data"> <br><INPUT TYPE="hidden" NAME="a_id" VALUE="<%= x %>"> <br><INPUT TYPE="file" size=90 NAME="file1"> <br><INPUT TYPE="file" size=90 NAME="file2"> <br><INPUT TYPE="submit" value="GO"> </FORM> ----------------- /aspfold/2.asp ---------------- <% a = Request.TotalBytes b = Request.BinaryRead(a) Set bobj = Server.CreateObject("Basp21") Set ObjFso = Server.CreateObject("Scripting.FileSystemObject") fol=bobj.form(b,"a_id") fold1 = "D:\somewhere\" & fol If ObjFso.FolderExists(fold1)=false Then ObjFso.CreateFolder(fold1) '以下 http://www.hi-ho.ne.jp/babaq/basp21.html 最下段から流用 f1=bobj.FormFileName(b,"file1") f2=bobj.FormFileName(b,"file2") fsize1=bobj.FormFileSize(b,"file1") fsize2=bobj.FormFileSize(b,"file2") newf1=Mid(f1,InstrRev(f1,"\")+1) newf2=Mid(f2,InstrRev(f2,"\")+1) l1=bobj.FormSaveAs(b,"file1",fold1 & "\" & newf1) l2=bobj.FormSaveAs(b,"file2",fold1 & "\" & newf2) %> <p>サーバの<%=fold1 %>フォルダに <p><%= newf1 %> <br><%= newf2 %> <p>を格納しました。 -------------------------------------------------- |
| [2224] Re:フォルダを作成して複数ファイルの同時アップロード |
| 投稿者:ミントさん 2002/06/26 9:30:25 |
| おはようございます!ミントです。 北岳さんありがとうございました。 北岳さんのアドバイスの通りに修正して実行したら、全て出来たんですが、下記に修正し実行したら出来ませんでした。 同じ事を3回繰り返し処理を行なうので、VBScriptを使いたいのですが、BASP21はVBScriptは使用できないということでしょうか? *ファイル保存 up_file.aspのスクリプト部分 <% Dim ObjFso Dim bobj,a,b,Tenp,Fol,F_Name,Up_F Dim GetFil,f1,newf1,F_Path,fold1,l1 a = Request.TotalBytes b = Request.BinaryRead(a) Set bobj = Server.CreateObject("Basp21") Set ObjFso = Server.CreateObject("Scripting.FileSystemObject") Fol = bobj.Form(b,"a_id") fold1 = "D:\添付資料\" & Fol If ObjFso.FolderExists(fold1)=false Then ObjFso.CreateFolder(fold1) F_Path = "D:\添付資料\" & Fol & "\" GetFil = Array("file1","file2","file3") i = 1 Do Until i > 3 If bobj.Form(b,GetFil(i-1)) <> "" Then FName = bobj.FormFileName(b,GetFil(i-1)) newf1=Mid(FName,InstrRev(FName,"\")+1) Up_F = bobj.FormSaveAs(b,GetFil(i-1),F_Path & newf1) End If i = i + 1 Loop %> |
| [2225] 自己レスです。出来ました! |
| 投稿者:ミントさん 2002/06/26 10:27:35 |
| 北岳さん、出来ました!!)^o^( file参照ボックスの値取得をFileName取得にして実行したら、 思い通りのことができました。 長々とつき合って頂いてありがとうございました! *ファイル保存 up_file.aspのスクリプト部分 <% Dim ObjFso Dim bobj,a,b,Tenp,Fol,F_Name,Up_F Dim GetFil,f1,newf1,F_Path,fold1,l1 a = Request.TotalBytes b = Request.BinaryRead(a) Set bobj = Server.CreateObject("Basp21") Set ObjFso = Server.CreateObject("Scripting.FileSystemObject") Fol = bobj.Form(b,"a_id") fold1 = "D:\添付資料\" & Fol If ObjFso.FolderExists(fold1)=false Then ObjFso.CreateFolder(fold1) F_Path = "D:\添付資料\" & Fol & "\" GetFil = Array("file1","file2","file3") i = 1 Do Until i > 3 Fle = bobj.FormFileName(b,GetFil(i-1))←ここでFileName取得に変更 If Fle <> "" Then newf1=Mid(Fle,InstrRev(Fle,"\")+1) l1 = bobj.FormSaveAs(b,GetFil(i-1),F_Path & newf1) End If i = i + 1 Loop %> |
|
TreeBBS For ASP V.0.1.3 |