vil du ha\' at brugeren skal gå ind på en side og så få downloaded en fil fra en FTP server til sin lokale disk, eller vil du kører et script på en server som så skal downloade en fil fra en anden server?
Det skal være sådan når brugeren klikker på et link, så modtager han en fil fra ftp server, filen skal helst være omdøbt fra *.dat til *.tif, så overførslen er fra server til bruger.
Selve download\'ningen kan du vist klarer med en normal link \' <a href=\"ftp:\\\\din.server\\din.fil\"> \' men ombødningen den kærver vist at du hiver filen ind på din webserver og sætter nogle metatags på.
Jeg mangler stadig sammenhængen, hvis du har lyst til at lave et færdigt forslag, jeg henter filerne direkte fra serveren med <a href=\"ftp:\\\\din.server\\din.fil\"> (din.fil bestemmer jeg ud fra en DB sti)
hvis det kommer til at virke dobler jeg pointne op:)
Jeg har fået følgende til at virke, men hvis jeg erstatter \'server.MapPath(\"\\help.gif\")\' med en FTP adresse får jeg en fejl, fejlen skyldes måske rettigheder som jeg ikke kan ændre, men måske har du flere rettigheder. Hvis ikke må vi prøve noget andet. Læs http://support.microsoft.com/support/kb/articles/q260/2/60.asp
<%@ Language=VBScript %> <% \'Set the content type to the specific type that you are sending. Response.AddHeader \"Content-Disposition\", \"attachment;filename=NyFil.gif\" Response.ContentType = \"application/.gif\"
Const adTypeBinary = 1 Dim strFilePath
strFilePath = server.MapPath(\"\\help.gif\")
Set objStream = Server.CreateObject(\"ADODB.Stream\") objStream.Open objStream.Type = adTypeBinary objStream.LoadFromFile strFilePath
Nej det kan du vist ikke. Hvis brugeren fravælger \'ask before opening this type of file\' i download windoet, så bliver de kun spurt om hvor den skal ligge, men du kan vist ikke slippe helt.
Det virker åbentbart ikke med ftp:( den kommer også og spørger om hvor den skal gemme xxx.asp filen henne, så jeg får ikke muligheden for at vælge \'ask before opening this type of file\' fra.
Jeg tror ikke du skal satse på at få den til at downloade uden at brugeren skal gøre noget, det ville være en hvis du kunne. Prøv at forestil dig at downloade en virus og omdøbe den til AutoExec.bat.
MHT. Ftp, har du så kikket på den Microsoft side jeg refererede til ?
jeps.. har set på siden, det er et intranet så alle rettigheder er givet..
med hensyn til omdøbningen og gemningen.. det var derfor at jeg valgte ftp, eks. get xxx.fil c:\\temp\\yyy.fil, her virker det uden spørgsmål af nogen art:) problemet er bare at få iis til forstå at den også kan det:)
Problemet er ikke IIS\'en, problemet er browseren og defineringen af HTML standarten. Grund ideen er at et site ikke må kunne gøre noget ved en klient uden at brugeren godtager dette, og at downloade en fil er, i aller højste grad, at gøre noget. Så vidt jeg ved kan man ikke engang gører det med Java.
Hvis du kan bruge Filsystemobject så burde du også kunne specificerer filnavnet istedet for server.MapPath(\"\\help.gif\"). Jeg havde forstået det sådan at der kun var FTP kontakt mellem de to servere.
der er pt kun ftp adgang mellem serverne, men der findes en ftp komponent der kan overføre filer mellem servere, dette kan den gøre uden nogen form for brugeraktion, så kunne man bruge denne komponent til at overføre filen til en mappe på serveren og derefter så bruge filsystemobject til at kopierre og omdøbe...
det drejer sig om een fil af gangen... brugeren fåe en liste med dokumenter(img. filer) op og kan så vælge at se filen.. det er her den skal overføres og omdøbes..
Men hvor mange filer drejer det sig maksimalt om. Det som jeg overvejer er om det kan betale sig at lave et mirror på webserveren. MHT. ftp fra en ASP side så kan du kører stort set alt fra en asp side ved at bruge kode i stilen med følgende. Det er farligt, men det kan lade sig gøre.
set dbShell = CreateObject(\"WScript.Shell\") z = dbShell.Run(\"cmd.exe /c c:\\Program Files\\FrontPage\\bin\\fpsrvadm /param\", 1, true) if z or Err.number then Response.Write \"There\'s been an error while running this VBS script\" if Err.number = -2147024894 then Response.Write \"File not found\" else Response.Write \"Completed succesfully\" end if set dbShell = nothing
Dette skulle kunne lave selve kaldet. Hvormeget ved du om FTP kommandoer?
set dbShell = CreateObject(\"WScript.Shell\") z = dbShell.Run(\"cmd.exe /c ftp -i -s:<Script navn> <din server>\", 1, true) if z or Err.number then Response.Write \"There\'s been an error while downloading the image\" if Err.number = -2147024894 then Response.Write \"File not found\" else Response.Write \"Completed succesfully\" end if set dbShell = nothing
Det skulle være en standart MS komponent. Den siger den kommer med SP4, men min maskine er en 2K og der er vist kun sp1 endnu. mmmm. Kik efter en fil der hedder noget i stilen med c:\\WINNT\\System32\\MSINET.OCX (Det kan være den ikke er registreret.)
Ok, jeg kan se at den muligvis er kommet med word 2K.
Kik på følgende side og søg efter MSINET.OCX, så får du en liste af produkter som installerer komponenten, måske har du en af dem. Ellers kan jeg måske sende den til dig.
Tjaaaa... nu har jeg prøvet med installation af visual studio og sr 6, nu melder den ikke fejl længre men den gemmer heller ikke filen:) (ikke nogen steder jeg kan finde den;))
Hej Jens. jeg var næsten blevet helt bekymret for om du var gået hjemmefra i nedtrykt sindstilstand ;).
Hvis du bruger response.BinaryWrite test.GetChunk(<Fil størrelse>) så bliver filen ikke gemt men skulle gerne overføres direkte til siden i binært format.
Nååååår det var da en let lille ting.... NOOOOOOT. Tillykke. Hvad gik der galt? ;)
Åbner den billedet i browseren, åbner den det i et andet program eller kommer den med den normale \"save eller run\" dialog.
Den ultimative måde at starte et program på klientens maskine må være at lave en ActiveX Komponent og bruge den på siden, men det ved jeg desværre ikke meget om, endnu ;).
hehe... er faktisk lidt tilbage til en kombination af hvad vi/du har kommet med af forslag på danne side og den komponent jeg startede med, lavede et lille kompromi ved at oprette en cache mappe på min IIS og gemme filerne her efter jeg har omdøbt dem, så kan brugeren åbne dem herfra.
Eneste problem er nu bare at få browsenen til at åbne kodakprv.exe og bruge den til visning af filen, lige nu bruger den et eller andet internt i browseren, her er problemet bare at man kun kan se een side af filen og tifferne er på op til 300 sider store:)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.