|
| Download af filer - Extension Fra : CADmageren | Vist : 585 gange 800 point Dato : 06-01-05 10:44 |
|
Hejsa
Jeg har lavet mit første ASP program, som sandt at sige har givet mig mange grå hår i hovedet..., men al begyndelse er svær
http://00240708.aspnethosting.dk/
Programmet laver en DXF fil (et ascii baseret CAD format), men når man som bruger vil downloade dette, kan filen enten ikke findes eller også må brugeren slet ikke downloade den pga sikkerheds indstillinger.
Hvis giver filen extension .txt istedet er der ingen problemer.
Som eksempel har jeg fundet siden: http://www.cecodoor.com/cfa1dxf.htm
Her jeg uden problemer downloade DXF filer - så hvad er det lige jeg har misset?
/ Michael Christoffersen
| |
| Kommentar Fra : BjarneD |
Dato : 06-01-05 11:01 |
|
En tilladelse på den server der hoster din side.
Mange udbydere vil ikke give tilladelse til FTP download fordi det vil belaste deres båndbredde for meget.
| |
| Kommentar Fra : Harlekin |
Dato : 06-01-05 11:03 |
|
Filen fandtes ikke da jeg prøvede.. det er den jo nødt til for at man kan hente den..
Det eksempel du giver har jo ikke (så vidt jeg kan se) automatisk genererede filer.
Prøv lige at få filen til at eksistere først. Så er det nemmere at hjælpe
| |
|
Jamen hvorfor virker det så hvis filen ender på .txt???
| |
| Kommentar Fra : Harlekin |
Dato : 06-01-05 11:05 |
|
BjarneD, det har ikke noget med FTP at gøre. Det link der laves bruger http:// protokollen, så det er ikke det der er problemet.
| |
|
Nu har jeg omdøbt extension til .txt
| |
|
Harlekin:
"Filen fandtes ikke da jeg prøvede.. det er den ..."
Jo filen findes... Det er netop problemet.
| |
| Kommentar Fra : Harlekin |
Dato : 06-01-05 11:07 |
|
Har du mulighed for (med FTP) at se om filen eksisterer på serveren med .dxf endelsen?
Hvis den ikke gør, så er det måske fordi du ikke har lov at gemme filer i det format.
Du kan så evt sende filen direkte til browseren som en stream - så bliver den ikke gemt på serveren først og du er ude over det problem!
| |
|
Filerne findes!
Jeg sidder er ser på ftp adgangen.
| |
|
Meningen er at brugeren skal kunne downloade filen, og indsætte denne som en block i sit cad program.
| |
|
Harlekin
Kan jeg ikke få dig til at ændre en af værdierne og lave en ny størrelse istedet for standardværdien.
/ Michael
| |
| Kommentar Fra : BjarneD |
Dato : 06-01-05 11:12 |
|
Harlekin selv om der anvendes http til download er det to sider af samme sag.
Det er jo heller ikke den fysiske dxf fil der ligger til download.
| |
| Kommentar Fra : Harlekin |
Dato : 06-01-05 11:13 |
|
3000x2400 - Den virker som txt...
Hvad med at prøve at sende en stream til klienten?
| |
|
Jeg må spørge ScanNet, men umiddelbart skulle der ikke være nogen problemer med DXF formatet - da det mig bekendt ikka noget med scripts at gøre.
| |
|
Hvordan streamer man til en klient?
Filen skal ikke vises i browseren/klienten men downloades til brugerens disk
| |
| Kommentar Fra : Harlekin |
Dato : 06-01-05 11:20 |
|
Prøv at bruge denne funktion.
Hvis du gemmer filen som TXT som du plejer. Så kalder du denne funktion med linket (og med filnavnet, fx "Demo_3000x24000.txt" som parameter).
Public Sub SecureFileDownload(ByVal inFile As String)
Dim strFileNamePath As String
strFileNamePath = Request.MapPath("Data") & "\" & inFile
Dim myFile As FileInfo = New FileInfo(strFileNamePath)
Response.Clear()
'now we send the file header minus the resources extension.
Response.AddHeader("Content-Disposition", "attachment; filename=" & _
Replace(myFile.Name, ".txt", ".dxf"))
Response.AddHeader("Content-Length", myFile.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(myFile.FullName)
Response.End()
End Sub
| |
| Kommentar Fra : Harlekin |
Dato : 06-01-05 11:23 |
|
Funktionen finder din fil i Data folderen, og sender den til klienten som en stream. Undervejs skifter den .txt endelsen ud med .dxf
Jeg kan se Kandu har spist et linieskift.
Response.AddHeader("Content-Length", myFile.Length.ToString())
skal være på en linie for sig.
| |
|
Compiler Error Message: BC30002: Type 'FileInfo' is not defined.
| |
| Kommentar Fra : Harlekin |
Dato : 06-01-05 11:36 |
|
Dim myFile As FileInfo = New FileInfo(strFileNamePath)
skiftes ud med
Dim myFile As System.IO.FileInfo = New System.IO.FileInfo(strFileNamePath)
| |
|
Exception Details: System.NotSupportedException: The given path's format is not supported.
Source Error:
Line 75: strFileNamePath = Request.MapPath("Data") & "\" & inFile
Line 76:
Line 77: Dim myFile As System.IO.FileInfo = New System.IO.FileInfo(strFileNamePath)
Line 78: Response.Clear()
Line 79: 'now we send the file header minus the resources extension.
| |
|
Jeg skal vist studere ASP noget mere.
Synes ellers jeg er VB ekspert....
Hvordan viser man værdien af en variabel?
| |
|
Jeg skal vist studere ASP noget mere.
Synes ellers jeg er VB ekspert....
Hvordan viser man værdien af en variabel?
| |
| Kommentar Fra : Harlekin |
Dato : 06-01-05 11:49 |
|
Du kan skrive
Response.Write(strFileNamePath)
for at få vist indholdet af strFileNamePath. Men det kræver selvfølgelig at koden kan kompilere..
| |
|
Tak for din tålmodighed - Harlekin.
Det var en fejl40.
OK - Nu forstår jeg hvad øvelsen gik ud på, men det har ikke løst problemet.
Jeg skal ikke have dataene vist i mit browser vindue.
Filen skal downloades.
| |
| Kommentar Fra : Harlekin |
Dato : 06-01-05 11:57 |
|
Kører det på linket nu?
Jeg får stadig en .txt fil når jeg trykker på det.
Hvis det kørte, så skulle den jo hente en .dxf fil. Den bør så komme frem og spørge om filen skal åbnes eller gemmes..
| |
|
afblæs alarmen
Jeg undskylder mange gange.
Problemet ligger hos ScanNet
Sorry
/ Michael Christoffersen
| |
|
Harlekin.
Måske kan din løsning alligevel bruges.
| |
| Godkendelse af svar Fra : CADmageren |
Dato : 06-01-05 12:05 |
|
Du er simpelt hen dagens mand!!
ScanNet har lagt en begrænsning på visse extensions af sikkerhedsmæssige årsager.
Men din lille stump kode løser problemet.
| |
| Kommentar Fra : Harlekin |
Dato : 06-01-05 12:10 |
|
Det var tarveligt af Scannet..
Så meget for deres sikkerhed
Hvis du vil bruge mere tid på det kan du lave din kode så den slet ikke gemmer en fil på disken først, men sender data direkte til den Stream du sender til brugeren.
Ellers må du i hvertfald huske at rydde op ved at slette den genererede fil efter den er sendt.
| |
|
Ja pt, gør det ikke noget at filerne bliver liggende, så går det bare endnu hurtigere.
Et lille ekstra sp.
Hvis jeg tester på localhost, så kommer dxf filen direkte frem i det aktive vindue, og man får ikke dialogboxen "Gem"...
Hvad er forskellen, og kan jeg være rimelig sikker på at dette spiller på samme måde i andre browsere/opsætninger?
Det er vigtigt at brugeren bliver promptet for at kunne gemme lokalt.
/ Michael
| |
| Kommentar Fra : Harlekin |
Dato : 06-01-05 12:22 |
|
Det må være windows logik. Localhost er jo lokalt, og så mener windows måske ikke den skal gemme filen - derfor bruger det program det plejer til at åbne filen, uden at spørge.
Jeg har prøvet med både IE og FireFox og det spiller. Det er jo bare en "anmindelig" download af en fil fra en hjemmeside.
| |
| Kommentar Fra : ans |
Dato : 06-01-05 12:39 |
|
CADmageren
Du er da dygtig, andre brugere kan max. give 500 point.
Hvordan bar du dig ad med 800 point.
Hilsen ans
| |
|
Tja det ved jeg faktisk ikke.
200 + 300 = 800 ???
| |
|
Harlekin -
Jeg har uploaded et ny version af programmet, men nu er der ikke længere bruger adgang.
Har du nogen idé om hvorfor??
http://00240708.aspnethosting.dk/
ScanNet giver ikke megen begynder support!
| |
|
Default.aspx
Jeg ikke ændret på filstrukturen, kun ændret i koden til ovenstående.
/ Michael
| |
|
Det har jeg ikke, men her er den:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
<customErrors mode="Off" defaultRedirect="NoAccess.htm">
<error statusCode="403" redirect="NoAccess.htm"/>
<error statusCode="404" redirect="FileNotFound.htm"/>
</customErrors>
</system.web>
</configuration>
| |
| Kommentar Fra : Harlekin |
Dato : 14-02-05 14:00 |
| | |
|
Har du mulighed for at kontakte mig direkte på
michael@cadmageren.dk / 4826 3570
mvh
Michael Christoffersen
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|