當前位置:首頁 » 文件管理 » 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文件夾裡面去刪除對應的圖片文件就可以了。--->

效果圖:網頁鏈接

熱點內容
架設私有雲伺服器 發布:2024-12-29 05:22:37 瀏覽:590
背部按摩刮痧放鬆解壓 發布:2024-12-29 05:09:55 瀏覽:131
android打電話界面 發布:2024-12-29 05:04:24 瀏覽:163
博美基因報告服務賬號密碼是什麼 發布:2024-12-29 04:58:25 瀏覽:918
pythondouble 發布:2024-12-29 04:40:45 瀏覽:93
直射光照演算法 發布:2024-12-29 04:40:05 瀏覽:386
app雲伺服器長啥樣 發布:2024-12-29 04:36:24 瀏覽:1001
演算法塗抹 發布:2024-12-29 04:29:17 瀏覽:841
java中重載和重寫的區別 發布:2024-12-29 04:29:15 瀏覽:702
android保存bitmap 發布:2024-12-29 04:13:11 瀏覽:887