14. september 2010 - 15:12Der er
17 kommentarer og 1 løsning
Zip en mappe på webserver
hej, Jeg er på udkig efter noget kode der kan zippe en mappe på en webserver og downloade den til en klient. jeg har kigget på lidt forskelligt, men jeg synes ikke rigtigt at jeg kan få det til at virke. Og jeg vil meget gerne have det i vb. Er ikke helt så skarp i C# Håber der er nogen derude der har lidt kode de vil dele ;-) Mvh Henrik
Du skal nok vaere forberedt paa at security kan drille lidt.
Kode fragment:
Dim zos As ZipOutputStream = New ZipOutputStream(New FileStream(zipfnm, FileMode.Create)) ...
Dim fs As FileStream = New FileStream(fnm, FileMode.Open) Dim b(fs.Length) As Byte fs.Read(b, 0, b.Length) fs.Close Dim ze As ZipEntry = New ZipEntry(fnm) zos.PutNextEntry(ze) zos.Write(b, 0, b.Length) ... zos.Finish zos.Close
Argghh, selvfølgelig. det virker fint nu. Altså bortset fra at jeg får en sikkerhedsfejl. Hvordan kan jeg komme ud over det? Mappen der skal zippes er en mappe der er oprettet af systemet. Er der nogen måde hvorpå jeg i koden kan give de rettigheder til mappen der skal til for at få adgang?
hmm det kan måske tænkes at der zippes temporært til temp-folderen? ja jeg ved det ikke... blot et forslag :) , men når mappen kan oprettes så har man også rettigheder til at skrive en fil.
Prøv evt. at give .NET-brugeren read/ write adgang til temp-folder på c-drevet.
Men det er jo ikke den mappe der skrives at der mangler access til?? Og jeg kan ikke give adgang til den mappe. Det eksempel du gav. Har du taget det fra noget C# kode?
Netop... det er også derfor jeg tænker at SharpZip lægger filen midlertidigt i temp-folderen imens den pakker og bagefter flytter til den mappe som den godt kan oprette. Og det er temp-folderen som der ikke kan skrives til måske!
jeg fandt noget C# kode som jeg lavede om til VB: ----------------- ' Create zip Dim f As FastZip = New FastZip f.CreateZip(targetZipFile, (baseDirectory + sourceDirectory), True, "")
'// Move zip File.Move(targetZipFile, (baseDirectory + targetZipFile)) '// Check for success Dim success As Boolean = File.Exists((baseDirectory + targetZipFile)) Return (success) ----------------- Jeg har så også været nødt til at give full trust til sitet. Hviklet vel ikke er helt godt. men så virker det. Den laver fint en zip fil. Jeg får dog en fejl med at "The given path's format is not supported". Jeg ved ikke helt hvad der menes med det?
Er det slet ikke muligt at lave det her uden at give full trust?
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.