はい、クラシック ASP を使用しています。レガシ アプリケーションをサポートしているわけではありません。目的: ファイルをアップロードし、"/uploads" などの特定のディレクトリ内のサーバーに保存する別の .asp ページに送信するフォーム ページが必要です。私はaspやasp.netに慣れていないので、これは初めてです。テストプロトタイプを作成しました:
フォームページ:
<!DOCTYPE html>
<head>
<title>Test upload</title>
</head>
<body>
<form action="process.asp" method="post" enctype="multipart/form-data">
<p>Filename: <input type="text" name="filename" size="50" /></p>
<p><input type="file" name="file" /><input type="submit" value="Upload file" /></p>
</form>
</body>
</html>
処理ページ:
<%
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set tfolder = fs.GetSpecialFolder(2)
tname = fs.GetTempName
'Declare variables
Dim fileSize
Dim filename
Dim file
Dim fileType
Dim p
Dim newPath
'Assign variables
fileSize = Request.TotalBytes
fileName = Request.form("filename")
file = request.form("file")
fileType = fs.GetExtensionName(file)
fileOldPath = tfolder
newPath = Server.MapPath("/uploads/")
fs.MoveFile fileOrigPath, newPath
set fs = nothing
%>
問題は、スクリプトをアップロードまたは実行しようとするたびに、次のエラーが発生することです。
Microsoft VBScript runtime error '800a0035'
File not found
/tbird/fileUpload/process.asp, line 25
明らかに、私はファイルに正しくマッピングしていません。スタックしている主な理由は、MoveFile
メソッドの最初のパラメーターでファイルに正しくマッピングしていないためだと思います。ファイルを参照する方法や、間違っているかどうかを誰かに教えてもらえますか?
事前に感謝します。すべてを検索して助けていただき、クラシック ASP とファイルのアップロードに関連して見つけたものはすべて、購入できるクラスであり、そうしたくありません。