skulle vilja kunna ladda upp bilder utan någon komponent till typ 4 olika mappar som jag i förväg har skapat på serven med hjälp av en droppmenu. Utgå från http://www.pellesoft.se/login/articles/asp/fileupload.asp och anpassa formuläret och SavePath efter dina önskemål. om jag använder http://www.pellesoft.se/login/articles/asp/fileupload.asp för att ladda upp filer till serven och vill ha en list/Menu där jag har typ 3 olika val vart jag vill lägga mina filer (bilder), hur bör jag göra då? vill ju kunna välja att lägga vissa bilder i en annan mapp och andra i en annan mapp Om du vill kan du kolla på detta skript, bygger också på att du har skapat dina mappar innan. Detta verkar vara bra :-) Om du har en <SELECT>lista med mappar i formuläret som skickar med vilket namn den mapp har som man vill spara i borde det gå att ta emot detta och använda i scriptet. Förutsatt att du har skapat mapparna... Här kommer den fil som du efterlyste till koden.ladda upp till olika mappar
om jag har en bild på barnen så skulle jag vilja välja en mapp som jag har skapat på serven som heter barnen och ladda upp bilderna till den, har jag en bild på typ bilar så vill jag lägga den i mapen bilar osv. kan någon hjäla mig med en sådan kod?
//TommySv: ladda upp till olika mappar
Sv: ladda upp till olika mappar
det kanske ser ut så här i koden till de olika mapparna på serven:
/bilder/sommar
/bilder/barnen
/bilder/blommor
hoppas på hjälp!
//Tommy LindblomSv: ladda upp till olika mappar
<%@EnableSessionState=True%>
<%Response.Buffer=True%>
<%Response.Expires=0
MappNamn = "../TestMapp" //* sökvägen till en virtual mapp som
innehåller dina namngivna mappar.
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
If (Request.ServerVariables("REQUEST_METHOD") = "POST") Then
Dim Upload
Set Upload = get_upload_files()
UPLOAD_PATH = Server.MapPath(Upload("mapp").Item("content"))
Set Folder = Fso.getFolder(UPLOAD_PATH)
fcontent = Upload("upload").Item("content")
allowlist = ".gif,.jpg,.bmp"
extension = right(extract_filename(Upload("upload").Item("filename")),4)
If Fso.FileExists(UPLOAD_PATH & "\" & Upload("text").Item("content")) Then
Session("mess") = "En fil med det namnet finns redan!"
Response.Redirect "upload.asp"
Else
If instr(allowlist,extension) then
Set File = Fso.CreateTextFile(UPLOAD_PATH & "\" & Upload ("text").Item("content") & extension)
Else
Session("mess") = "Du får <b>inte</b> skicka upp filen med det filformatet.<br>Endast <b>" & allowlist & "</b> är godkända."
Response.Redirect "upload.asp"
End If
End If
For i = 1 to LenB(fcontent)
File.Write chr(AscB(MidB(fcontent, i, 1)))
Next
File.Close: Set File = Nothing
Session("fil") = extract_filename(Upload("upload").Item("filename"))
Session("visa") = "ok"
Response.Redirect "upload.asp"
End If
%>
<html>
<head>
<title>»» Bildgalleri ««</title>
<script language="JavaScript">
<!--
function blured()
{
for (a in document.links) document.links[a].onfocus = document.links[a].blur;
}
if (document.all)
{
document.onmousedown = blured;
}
// Osäker om detta fungerar fullt ut
/*function kolla() {
re = /[^åäö]/;
str = document.frmUpload.upload.value;
if(!(re.test(str)))
{
alert("Du får inte använda å,ä,ö i filnamnet");
}
else{
document.frmUpload.submit();
}
}
*/
// -->
</script>
</head>
<body>
<table width="400" align="center" border="0">
<tr>
<td colspan="2"><font size="2">Bildgalleriet:</font></td>
</tr>
<tr>
<td height="10" colspan="2"><img src="bilder/dot400.gif"></td>
</tr>
<form name="menyn">
<tr>
<td width="650"><font size="2">» (Glöm ej att skriva text till bilden)</font></td>
<td align="right" width="133">
// Skall fungera utan denna fil
<!--#Include file="settings.asp"-->
</td>
</tr>
</form>
<tr>
<td colspan="2" height="10"><img src="bilder/dot400.gif"></td>
</tr>
</table>
<table width="400" border="0" align="center">
<form name="frmUpload" method="post" enctype="multipart/form-data" action="upload.asp" onsubmit="this.submitbtn.disabled=true">
<tr>
<td>
<font size="2">Bild:<br><br><input type="file" name="upload" size="35"><BR>
<BR><BR>
Mapp: <SELECT NAME="mapp">
<% Set Mappkoll = Server.CreateObject("Scripting.FileSystemObject")
Set Mapp = Mappkoll.GetFolder(Server.MapPath(MappNamn))
Set MyDrive = Mapp.subFolders
For Each Folder in MyDrive%>
<option value="<%=MappNamn%>/<%=Folder.Name%>"><%=Folder.Name%><br>
<%Next%>
</SELECT><BR><BR><BR>Skriv text till bilden:
<TEXTAREA NAME="text"></TEXTAREA>
<BR><BR>
<center>
<!--input type="button" value="Ladda upp" onclick="kolla()"></font-->
<input type="submit" value="Ladda upp" id="submitbtn"></font>
<input type="button" value="Ta bort bild" onclick="window.open('delete.asp?','','width=350,height=150,resize=no')"></font>
<%If Session("mess") <> "" Then%>
<tr>
<td height="10"><img src="bilder/dot400.gif"></td>
</tr>
<tr>
<td class="normal"><%=Session("mess")%><%Session("mess") = ""%></td>
</tr>
<%End If%>
</form>
</table>
</body>
</html>
<%
Function get_upload_files()
Set upload_object = Server.CreateObject("Scripting.Dictionary")
request_binaries = Request.BinaryRead(Request.TotalBytes)
position_start = 1
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
boundary = MidB(request_binaries, position_start, (position_end - position_start))
boundary_pos = InstrB(1, request_binaries, boundary)
Do Until (boundary_pos = InstrB(request_binaries, boundary & get_byte_string("--")))
If Not(Response.IsClientConnected) Then Response.End
position_start = (InstrB(InstrB(boundary_pos, request_binaries, get_byte_string("Content-Disposition")), request_binaries, get_byte_string("name=")) + 6)
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(34)))
name = get_string(MidB(request_binaries, position_start, (position_end - position_start)))
pos_file = InstrB(boundary_pos, request_binaries, get_byte_string("filename="))
If ((pos_file <> 0) AND (pos_file < InstrB(position_end, request_binaries, boundary))) Then
upload_object.Add name, Server.CreateObject("Scripting.Dictionary")
position_start = (pos_file + 10)
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(34)))
upload_object.item(name).Add "filename", get_string(MidB(request_binaries, position_start, (position_end - position_start)))
position_start = (InstrB(position_end, request_binaries, get_byte_string("Content-Type:")) + 14)
position_end = InstrB(position_start, request_binaries, get_byte_string(chr(13)))
upload_object.item(name).Add "content-type", get_string(MidB(request_binaries, position_start, (position_end - position_start)))
position_start = (position_end + 4)
position_end = InstrB(position_start, request_binaries, boundary) - 2
upload_object.item(name).Add "size", ((position_end - position_start))
upload_object.item(name).Add "content", MidB(request_binaries, position_start, (position_end - position_start))
Else
upload_object.Add name, Server.CreateObject("Scripting.Dictionary")
position_start = (position_end + 5)
position_end = InstrB(position_start, request_binaries, boundary) - 2
upload_object.item(name).Add "content", get_string(MidB(request_binaries, position_start, (position_end - position_start)))
End If
boundary_pos = InstrB(boundary_pos + LenB(boundary), request_binaries, boundary)
Loop
Set get_upload_files = upload_object
End Function
Function get_byte_string(str)
For cnt = 1 to Len(str)
get_byte_string = get_byte_string & chrB(AscB(Mid(str, cnt, 1)))
Next
End Function
Function get_string(str)
For cnt = 1 to LenB(str)
get_string = get_string & chr(AscB(MidB(str, cnt, 1)))
Next
End Function
Function extract_filename(filename)
extract_filename = Right(filename, Len(filename) - InStrRev(filename, "\", -1, 1))
End Function
%>
Det är bara att testa detta. "Lämnar inte så mycket förklaring till detta skript."
Funkar det, så använd det.
Glöm ej att kolla dina mappar så att det är rättigheter på dessa.
halleSv: ladda upp till olika mappar
men det fattas filer som settings.asp typ
har ingen alla filer som tillhör?
maila gärna till mig om någon har det :-)
//Tommy LindblomSv: ladda upp till olika mappar
Typ såhär:
formuläret:
<code><select name="mappNamn" size="1" id="mappId">
<option value="sommar">sommar</option>
<option value="barnen">barnen</option>
<option value="blommor">blommor</option>
</select></code>
scriptet:
<code>SavePath = Server.MapPath(Request("mappNamn")&"/"&FilePath)</code>
Du får dock kolla hur FilePath sätts så att det inte innehåller extra /
(med scriptet menas fortfarande Pelles fileupload som nämns ovan)Sv: ladda upp till olika mappar
<%
Losen1 = ""
Losen2 = ""
db = Server.MapPath("db/galleri.mdb")
kategorier = 8 '***Glöm ej å ändra denna siffra om du lägger till kategorier.
Dim Kat(8)
Kat(1) = "Välj mapp" '***Glöm ej å ändra denna siffra om du lägger till kategorier.
Kat(2) = "Arbetsmiljo"
Kat(3) = "Fordon"
Kat(4) = "Kommunikation"
Kat(5) = "Samverkan"
Kat(6) = "LedningsAmbulans"
Kat(7) = "Utryckningskörning"
Kat(8) = "Ovrigt"
%>
Bara att ändra till de namn som dina mappar har.
Om du vill så kan du få ett skript där du skapar dina egna mappar, och
namnsätter dessa. Då kan användaren/eller du skapa dessa direkt i programet.
/halle