当前位置:首页 » 文件管理 » cpost图片上传

cpost图片上传

发布时间: 2024-12-28 14:34:23

Ⅰ c#里有上传控件么在哪怎么调用

有。在工具箱里。不过貌似没有可以直接上传的控件,需要代码实现。
上传一个或者多个文件

需要把form写成这样:

<form method="post" id="form1" onsubmit="/*postForm();return false;*/" action="Default.aspx" style="margin:0px;" runat="server" enctype="multipart/form-data">
选择上传图片:
<br />
<span id="FileList"><input type="file" size="50" name="File" /></span>
<br />

<a href='#' onclick="addFile(10)" ><font color='blue'>增加更多图片</font></a>(每次最多上传10张图片)
<br/>

<asp:Button ID="btnSave" runat="server" Text="开始上传" height='30px' onclick="btnSave_Click"></asp:Button>
<input type="hidden" id="DelID" name="DelID" />
</form>

<script type="text/javascript" language="javascript">

function addFile(max)
{
var file = document.getElementsByName("File");
if (file.length < max) {
var filebutton = '<br /><input type="file" size="50" name="File" />';
document.getElementById('FileList').insertAdjacentHTML("beforeEnd", filebutton);

}
else {
alert('每次最多上传' + max + '张图片')
}
}
</script>

其中, document.getElementById('FileList').insertAdjacentHTML("beforeEnd", filebutton);

也可以写成:
document.getElementById('FileList').innerHTML += filebutton

注意不能少enctype="multipart/form-data",否则后台取不到文件

后台:

int uploadcount = 0;

try
{
///获取上载文件的列表
HttpFileCollection fileList = HttpContext.Current.Request.Files;
if (fileList == null) return;

///上载文件列表中的每一个文件
for (int i = 0; i < fileList.Count; i++)
{ ///获取当前上载的文件
HttpPostedFile postedFile = fileList[i];
if (postedFile == null)
{
continue;
}

///获取上载文件的文件名称
String fileExt = (System.IO.Path.GetExtension(postedFile.FileName)).ToString().ToLower();
String strImageName = "pictures\\" + System.Guid.NewGuid().ToString();

if (string.IsNullOrEmpty(fileExt) == true)
{
continue;
}

//保存上传图片到服务器
postedFile.SaveAs(Server.MapPath(strImageName + fileExt));

(new Picture()).UploadPicture("", strImageName + fileExt);
uploadcount++;

}

if (uploadcount>0)
{
Response.Redirect("UploadSucceed.aspx?succeed=true");
}
else
{
Response.Write("<script language=javascript>alert(\'系统提示:请选择文件!\');</script>");
}

}
catch (Exception ex)
{
Response.Write("<script language=javascript>alert(\'系统警告:上传图片失败!\');</script>");

}

如果就上传一个文件,则file元素加上runat='server',也可以直接在后台访问

////获取图片文件扩展名
//String fileExt = (System.IO.Path.GetExtension(fileImage.PostedFile.FileName)).ToString().ToLower();
//String strImageName = "pictures\\" + System.Guid.NewGuid().ToString();
//try
//{
// if (fileImage.PostedFile.ContentLength != 0) //判断选取对话框选取的文件长度是否为0
// {
// //保存上传图片到服务器
// fileImage.PostedFile.SaveAs(Server.MapPath(strImageName + fileExt));

// (new Picture()).UploadPicture("", strImageName + fileExt);
// Response.Redirect("UploadSucceed.aspx?succeed=true");
// }
// else
// {
// Response.Write("<script language=javascript>alert(\'系统提示:请选择文件!\');</script>");
// }

//}
//catch (Exception ex)
//{
// Response.Write("<script language=javascript>alert(\'系统警告:上传图片失败!\');</script>");

//}

python requests 使用post方式上传图片

他那个文件是在当前目录下, 所以不需要写绝对路径.

你只需要把第二行的files改成如下就好:

files={'file':open('/c/1/2.jpg','rb')}

Ⅲ C++ 以POST方式向网页提交数据.有错误。。求大神解救就这点财富值了,见谅。图片是错误。

只帮你解决崩溃的问题哈


就说两个问题:

1、VS2005或以上的IDE默认是用UNICODE的,你代码里混用ANSI和UNICODE,又做强制转换,导致了一些参数出错


2、OpenRequest接受两种不同的参数的,既然你用的是HTTP_VERB_POST,为什么要强制转换成LPCTSTR呢,这样会导致它调用的是另外一个函数(C++支持同名函数,不同参数)


boolPostHttpPage(conststd::wstring&hostName,
conststd::wstring&pathName,
conststd::wstring&postData)
{
usingnamespacestd;
CInternetSessionsession(_T("session"),0,INTERNET_OPEN_TYPE_PRECONFIG,NULL,
NULL,INTERNET_FLAG_DONT_CACHE);//设置不缓冲

INTERNET_PORTnPort=80;
DWORDdwRet=0;

CHttpConnection*pServer=session.GetHttpConnection(
(LPCTSTR)hostName.c_str(),nPort);
CHttpFile*pFile=pServer->OpenRequest(CHttpConnection::
HTTP_VERB_POST,(LPCTSTR)pathName.c_str());

CStringstrHeaders=L"Content-Type:application/x-www-form-urlencoded";//请求头
//开始发送请求

pFile->SendRequest(strHeaders,(LPVOID)postData.c_str(),
postData.size());
pFile->QueryInfoStatusCode(dwRet);

if(dwRet==HTTP_STATUS_OK)
{
CStringresult,newline;

while(pFile->ReadString(newline))
{//循环读取每行内容
result+=newline+L" ";
}

std::cout<<result<<std::endl;//显示返回内容
}
else
{
returnfalse;
}
deletepFile;
deletepServer;
cout<<"成功"<<endl;

session.Close();

returntrue;
}

//调用时用下面的代替
PostHttpPage(L"localhost",L"welcome.php",L"name=rain&age=21");

Ⅳ 怎么用C实现Http POST功能向Http服务器上传文件

用socket就行了。
和服务器建立请求。
然后发送请求报文"\r\n\r\n"结束之后是数据。
post分为,application/x-www-form-urlencoded和multipart/form-data boundary=
要是上传文件,就得使用multipart/form-data boundary=...
服务器那边根据boundary来解析出数据。

Ⅳ ASP如何实现批量上传图片,并在数据库中有记录

<%

dim conn

dim rs

dim rs2


set conn=server.createobject("adodb.connection")

conn.connectionstring="Provider = Microsoft.Jet.OLEDB.4.0;Data Source="&server.mapPath("db.mdb")

conn.open


formsize=request.totalbytes


if formsize<>0 then '这里只判断了是否等于0,等于0就说明没有传过来数据。以后可以要多做点判断,比如限制图片大小的时候要判断一下。

formdata=request.binaryread(formsize)


bncrlf=chrB(13)&chrB(10)

divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)

datastart=instrb(formdata,bncrlf&bncrlf)+4

dataend=instrb(datastart+1,formdata,divider)-datastart

mydata=midb(formdata,datastart,dataend)'这里也要检测一下,就是检测这个数据里面是不是有病毒词汇之类的,这个可以在网上查一下病毒里面可能出现的词语,如果有这些词语,直接在这里就把这个mydata销毁,然后response.redirect "xxx.asp",有病毒赶快跳转,不要处理带病毒的数据。


set rs=server.createobject("ADODB.recordset")

sql="select * from imgurl"

rs.open sql,conn,1,3

rs.addnew

rs("img").AppendChunk myData'把这个图片的二进制数据新增到img字段里面。

tpm=replace(now(),"/","_") '用的日期做名字,日期里面有"/"," ",":"之类的东西,这些东西全部替换成"_"。

tpm=replace(tpm,":","_")

tpm=replace(tpm," ","_")

rs("图片名")=tpm

rs.update


Set MyStream=Server.CreateObject("Adodb.Stream")

MyStream.Type=1

MyStream.Open

MyStream.Write rs("img").getChunk(8000000)

MyStream.SaveToFile server.mappath("pic/"&tpm&".jpg")

MyStream.close

set MyStream=nothing


rs("img")="" '把access里面的二进制图片内容删除,只保留图片的名字。

rs.update


rs.close

set rs=nothing


response.write "<script>alert(""上传成功"");location.href=""upload.asp"";</script>"

end if

%>


<form action="upload.asp" method="post" enctype="multipart/form-data">

<input type="file" name="imgurl">

<input type="submit" name="ok" value="上传">

</form>



<!--------------下面是把图片显示出来------------------->



<div style="margin-top:2em;"><!--------------创建一个div把图片显示区域定位一下------------------->

<%

set rs2=server.createobject("ADODB.recordset")

sql2="select * from imgurl order by id desc"

rs2.open sql2,conn,1,1

for s=1 to rs2.recordcount

if not rs2.eof and not rs2.bof then

%>

<img src="pic/<%=rs2("图片名")%>.jpg">

<%

else

exit for

end if

rs2.movenext

next

rs2.close

set rs2=nothing

%>

</div>

<%

conn.Close

Set conn = Nothing

%>


<!--至于删除图片,这个就很简单了,图片的名字都已经进access里面了,直接读一下access里面的名字,读了一个名字,然后用fso在pic文件夹里面去删除对应的图片文件就可以了。--->

效果图:网页链接

热点内容
新买的车都要配置哪些 发布:2025-03-13 20:42:50 浏览:899
我的世界怎么用服务器 发布:2025-03-13 20:37:27 浏览:658
我的世界java好玩的服务器ip 发布:2025-03-13 20:31:35 浏览:685
新君越压缩比 发布:2025-03-13 20:30:12 浏览:167
苹果跟安卓哪个容易中毒 发布:2025-03-13 20:20:45 浏览:653
loggerjava 发布:2025-03-13 19:54:36 浏览:710
android标题栏隐藏 发布:2025-03-13 19:54:35 浏览:679
企业网站数据库设计 发布:2025-03-13 19:48:18 浏览:467
绝对素数c语言 发布:2025-03-13 19:48:16 浏览:790
java工程师简历 发布:2025-03-13 19:42:33 浏览:456