文件上传的问题
<FORM METHOD=POST ACTION= "a.asp " enctype= "multipart/form-data ">
标题: <input type=text value=1 name=id >
<INPUT TYPE= "file " NAME= "file " size= "20 ">
<INPUT TYPE= "submit " value= "上传 ">
</FORM>
把文件保存到服务器指定的目录下
然后保存 上传后的路径,和文本框的值到数据库中。
大家帮帮忙啊,从网上下的代码,运行都有问题啊。
[解决办法]
上传页
<form action= "topimg.asp?ac=add1 " method= "post " enctype= "multipart/form-data " name= "form1 " id= "form1 ">
<table width= "500 " border= "0 " align= "center " cellpadding= "4 " cellspacing= "1 ">
<tr>
<td height= "30 " colspan= "2 "> <span class= "STYLE1 "> >>添加显示图片 </span> </td>
</tr>
<tr>
<td width= "80 " align= "right "> 图片名称: </td>
<td width= "401 "> <input name= "imgname " type= "text " id= "imgname " /> </td>
</tr>
<tr>
<td align= "right "> 相关图片: </td>
<td> <input name= "img " type= "file " id= "img " /> </td>
</tr>
<tr>
<td colspan= "2 " align= "center "> <input type= "submit " name= "Submit " value= "确认添加 " />
<input type= "reset " name= "Submit2 " value= "复位重填 " /> </td>
</tr>
</table>
</form>
获取上传页:
<%
server.ScriptTimeout=20000
dim frm2
set frm2=New UpLoadClass
frm2.MaxSize =204800
frm2.FileType = "gif/jpg "
frm2.SavePath = "../images/adv/ "
frm2.AutoSave = 0
frm2.open
img=frm2.form( "img ")
imgname=frm2.form( "imgname ")
set rs=server.createobject( "adodb.recordset ")
sql= "select * from topimg "
rs.open sql,conn,1,3
rs.addnew
rs( "img ")=img
rs( "imgname ")=imgname
rs.update
rs.close
set rs=nothing
%>
<script language= "javascript " type= "text/javascript ">
alert( "添加成功! ")
location.href= "topimg.asp "
</script>
无具类上传组件
UpLoadClass.asp
[解决办法]
搜索upload_5xsoft.inc无组件上传类,很好用。
[解决办法]
给你个实例。。。
www.kudaa.com/downlist.asp
[解决办法]
化境上传,搜索,我的都行
[解决办法]
那可能是你的上传路径有问题。
[解决办法]
运行一下regsvr32 scrrun.dll试试吧。
[解决办法]
<?xml version= "1.0 " encoding= "utf-8 "?>
<package>
<?component error= "false " debug= "false "?>
<comment>
<![CDATA[
風雲ASP上传组件(纯Javascript的ASP文件上传组件)
Author: Rimifon
LastModify: 14:00 2006-11-30
]]> </comment>
<scriptlet id= "Upload ">
<registration clsid= "{12345678-aabb-ccdd-eeff-012345678900} " progid= "Rimifon.Upload " version= "3.3 " description= "風雲ASP上传组件 " />
<public>
<property name= "Name " dispid= "0 "> <get internalName= "ProductName " /> </property>
<property name= "Filter " />
<property name= "MaxSize " />
<property name= "Field " />
<property name= "Charset " />
<method name= "ReadForm ">
<parameter name= "ReadSize " />
<parameter name= "ProgID " />
</method>
<method name= "SaveFile ">
<parameter name= "SavePath " />
</method>
<method name= "AspTest ">
<parameter name= "Sender " />
</method>
<method name= "Form ">
<parameter name= "Element " />
</method>
<method name= "Dispose " />
</public>
<implements type= "ASP " />
<script language= "Javascript ">
<![CDATA[
var AspOnly = "本组件仅用于ASP页面。 ";
var Charset = "gb2312 ";
var Rule, Field, Stream, Nothing;
var GetFileBody = MaxSize = 0;
var TempField = LastData = " ";
var Filter = "rar|zip|txt|gif|jpg|bmp|htm|html|swf|mht ";
function ProductName()
{
return "風雲ASP上传组件 ";
}
function ReadForm(ReadSize, ProgID)
{
Field = new Array;
if(!this.Server) return AspOnly;
Rule = Request.ServerVariables( "Http_Content_Type ").Item;
if(!Rule || Rule.indexOf( "multipart/form-data ")) return TextForm();
Rule = "-- " + Rule.split( "= ")[1];
Rule = Rule.replace(/[\x00-\xff]/g,
function($1)
{
return "% " + $1.charCodeAt(0).toString(16).toUpperCase();
});
var TotalBytes = Request.TotalBytes;
if(ReadSize % 2) ReadSize += 1;
if(!ReadSize || ReadSize > TotalBytes) ReadSize = TotalBytes;
var ReadBytes = 0;
if(!Stream)Stream = Server.CreateObject( "Adodb.Stream ");
while(ReadBytes < TotalBytes && Response.IsClientConnected())
{
ReadBytes += ReadSize;
if(ReadBytes > TotalBytes)
{
ReadSize = ReadSize + TotalBytes - ReadBytes;
ReadBytes = TotalBytes;
}
if(ProgID)
{
Application.Lock();
Application.Contents(ProgID + "_TotalBytes ") = TotalBytes;
Application.Contents(ProgID + "_ReadBytes ") = ReadBytes;
Application.Unlock();
}
LastData += EncodeChar(BinToStr(Request.BinaryRead(ReadSize)));
if(LastData.length < Rule.length) continue;
if(!GetFileBody && LastData.indexOf(Rule) > -1)
{
GetFullData();
}
else
{
if(!GetFileBody && LastData.indexOf( "%0D%0A%0D%0A ") > 0)
{
var fieldBody = unescape(LastData.replace(/%(\w{2})%(\w{2})/g, "%u$2$1 "));
fieldBody = BinToStr(fieldBody, Charset).split( "\r\n\r\n ")[0];
var mimeType = fieldBody.match(/Type: (.*)$/);
if(mimeType)
{
var filePath = fieldBody.match(/ filename= "(.*?) "/);
TempField = fieldBody.match(/ name= "(.*?) "/)[1];
Field[TempField] = new FormField;
Field[TempField].FileType = mimeType[1];
Field[TempField].FilePath = filePath[1];
Field[TempField].SourceName = filePath[1].match(/([^\/\\]*?)$/)[1];
Field[TempField].FileSize = 0;
LastData = LastData.replace(/^(.*?)%0D%0A%0D%0A/, " ");
Field[TempField].Value = new Array;
GetFileBody = 1;
}
}
else if(GetFileBody)
{
if(LastData.length < Rule.length + 6) continue;
if(LastData.indexOf( "%0D%0A " + Rule) < 0)
{
var uniChar = LastData.slice(0, 0 - Rule.length - 6);
if(uniChar.length % 6) uniChar = uniChar.slice(0, -3);
Field[TempField].FileSize += uniChar.length;
if(!MaxSize || Field[TempField].FileSize/3 <= MaxSize)
Field[TempField].Value.push(unescape(uniChar.replace(/%(\w{2})%(\w{2})/g, "%u$2$1 ")));
LastData = LastData.replace(uniChar, " ");
}
else
{
var uniChar = LastData.split( "%0D%0A " + Rule)[0];
Field[TempField].FileSize += uniChar.length;
LastData = LastData.replace(uniChar, " ");
if(!MaxSize || Field[TempField].FileSize/3 <= MaxSize)
{
Field[TempField].Value.push(unescape(uniChar.replace(/%(\w{2})%(\w{2})/g, "%u$2$1 ")));
Field[TempField].Value = Field[TempField].Value.join( " ");
}
else
{
Field[TempField].Value = "文件太大 ";
}
Field[TempField].FileSize = Field[TempField].FileSize / 3;
GetFileBody = 0;
if(LastData.length > Rule.length && ReadBytes == TotalBytes) GetFullData();
}
}
}
}
}
function SaveFile(SavePath)
{
if(!this.Server) return AspOnly;
SavePath = SavePath?SavePath.replace(/[\/\\]$/, " "): ". ";
var upFilter = new RegExp( "\\.( " + Filter + ")$ ", "i ");
for(var i in Field)
{
if(Field[i].FilePath)
{
if(!Field[i].Value)
{
Field[i].Message = "文件内容不能为空 ";
continue;
}
if(Filter && !Field[i].FilePath.match(upFilter))
{
Field[i].Message = "服务器不接受该类文档 ";
continue;
}
if(MaxSize && Field[i].FileSize > MaxSize)
{
Field[i].Message = "上传文档大小超过限制 ";
continue;
}
var filename = Field[i].SavePath;
if(!filename)
{
var fileExt = Field[i].FilePath.match(/\.([^\/\.\\]*)$/);
filename = MakeFileName() + (fileExt?fileExt[0]: " ");
Field[i].FileName = filename;
filename = Server.MapPath(SavePath + "\\ " + filename);
}
Stream.Type = 2;
Stream.Open();
Stream.Charset = "unicode ";
Stream.WriteText(Field[i].Value);
try
{
Stream.SaveToFile(filename);
}
catch(err)
{
Field[i].Message = err.message;
continue;
}
finally
{
Stream.Close();
}
if(!Field[i].SavePath) Field[i].SavePath = filename;
Stream.Type = 1;
Stream.Open();
Stream.LoadFromFile(filename);
Stream.Position = 2;
var file = Stream.Read(Field[i].FileSize);
Stream.Position = 0;
Stream.SetEOS();
Stream.Write(file);
Stream.SaveToFile(filename, 2);
Stream.Close();
}
}
}
function GetFullData()
{
LastData = LastData.split(Rule);
for(var C=0; C <LastData.length-1; C++)
{
if(LastData[C].length < 10) continue;
var strField = ParseData(LastData[C]);
Field[strField[0]] = new FormField;
Field[strField[0]].Value = strField[1];
if(strField[3])
{
Field[strField[0]].FilePath = strField[2];
Field[strField[0]].SourceName = strField[2].match(/([^\/\\]*?)$/)[1];
Field[strField[0]].FileType = strField[3];
var fileInfo = GetFile(LastData[C]);
Field[strField[0]].Value = fileInfo[0];
Field[strField[0]].FileSize = fileInfo[1];
}
}
LastData = LastData.pop();
}
[解决办法]
gsid=upfile.form( "id ")
要加引号的吧。
[解决办法]
这个需要用到从二进制数据中分离表单数据的方法,另外,你运行代码有什么问题?