2017-05-09 2 views
-1

サーバのフォルダからファイルをダウンロードする必要があります。asp classicでDWGファイルをダウンロード

私はASPクラシックでこのコードを試しましたが、ファイルがDWGの場合はダウンロードが機能しません。

私はエラーがありません。このコードをダウンロードすると、すべてのファイルタイプがDWGファイル用にダウンロードされます。

誰かが私を助けることができますか?

ありがとうございます。

以下のマイコード。

getfile.asp

<% 
Function BaseName(byVal Path) 
Dim Pos 
    Path = Replace(Path,"/","\") 
    Pos = InStrRev(Path,"\") 
    If Pos>0 then 
     BaseName = Mid(Path,Pos+1) 
    Else 
     BaseName = Path 
    End if 
end function 

Function ReadFile(FileName) 
Dim Stream , Path 
    On error resume next 
     Path = Server.MapPath(FileName) 
     If Err.Number<>0 then Path = FileName 
    On error goto 0 
    Set Stream = Server.CreateObject("ADODB.Stream") 
    Stream.Type=1 
    Stream.Open() 
    Stream.LoadFromFile Path 
    Stream.Position=0 
    ReadFile = Stream.Read() 
    Stream.Close() 
    Set Stream = Nothing 
End Function 

' Timeout 
Server.ScriptTimeout=6000 
if Len(Trim(request.querystring("file"))) > 0 then 
    file = server.mappath(request.querystring("file")) 
else 
    Response.Write("file not found") 
    Response.end 
end if 
response.ContentType="application/octet-stream" 
response.AddHeader "Content-Disposition", "attachment; filename=" & BaseName(file) 
Response.BinaryWrite ReadFile(File) 
Response.End 
%> 

default.aspの

<script language="JavaScript" type="text/javascript"> 
    function doDownload(file1, file2, frmName) 
    { 
     var ifrmObj = document.getElementById((frmName && frmName.length > 0) ? frmName : "dwnFrm1"); 
     ifrmObj.src = ""; 
     ifrmObj.src = "getFile.asp?file=" + file1; 

     if (!file2 || file2.length <= 0) return; 

     // Timeout 
     window.setTimeout("doDownload('" + file2 + "', '', 'dwnFrm2');", 3000); 
    } 
    </script> 

    <body bgcolor="#EAEFFF"> 

    <iframe id="dwnFrm1" style="display: none;"></iframe> 
    <iframe id="dwnFrm2" style="display: none;"></iframe> 

    extDWG = right(directoryfile.Name, 3) 
    if extDWG = "dwg" then   
     response.write ("<a href=""javascript:void(0);"" onclick=""doDownload('/MyFolder/" & Server.HTMLencode(folder) & "/"& Server.HTMLencode(directoryfile.Name) &"', '/MyFolder/" & Server.HTMLencode(folder) & "/X-cart.dwg');"">")  
    else  
     response.write ("<a href=""/MyFolder/" & folder & "/" & directoryfile.Name &""">")  
    end if 

答えて

0

あなたは、サーバー上のDWGファイルのMIMEタイプを追加する必要があります。

一般的でないファイル拡張子には、アソシエーションはありません。

  • 以前のIIS(バージョン6/7)では、IISマネージャーでサーバーを右クリックし、プロパティを選択して[MIMEタイプ]ボタンをクリックします。ここでは、正しいMIMEタイプの.dwgファイルのレコードを追加する必要があります。
  • IIS 8では、IISマネージャーのサイト名をクリックし、MIMEタイプを選択します。

を押して、新規および拡張種類に応じて、あなたのケースで短いGoogle検索の後、私の推測では、の.dwg アプリケーション/ ACADを持っている必要があることを次のようになります。以下に説明するように、その後、同じように追加しますMIMEタイプとして。

これが役に立ちます。