當前位置:首頁 » 雲伺服器 » js數據類型傳遞到伺服器怎麼用

js數據類型傳遞到伺服器怎麼用

發布時間: 2023-08-03 11:45:33

㈠ 如何使用 NodeJS 將文件或圖像上傳到伺服器

下面先介紹上傳文件到伺服器(多文件上傳):
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.util.regex.*;
import org.apache.commons.fileupload.*;

public class upload extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GB2312";
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
try {
DiskFileUpload fu = new DiskFileUpload();
// 設置允許用戶上傳文件大小,單位:位元組,這里設為2m
fu.setSizeMax(2*1024*1024);
// 設置最多隻允許在內存中存儲的數據,單位:位元組
fu.setSizeThreshold(4096);
// 設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬碟的目錄
fu.setRepositoryPath("c://windows//temp");
//開始讀取上傳信息
List fileItems = fu.parseRequest(request);
// 依次處理每個上傳的文件
Iterator iter = fileItems.iterator();
//正則匹配,過濾路徑取文件名
String regExp=".+////(.+)$";
//過濾掉的文件類型
String[] errorType={".exe",".com",".cgi",".asp"};
Pattern p = Pattern.compile(regExp);
while (iter.hasNext()) {
FileItem item = (FileItem)iter.next();
//忽略其他不是文件域的所有表單信息
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
if((name==null||name.equals("")) && size==0)
continue;
Matcher m = p.matcher(name);
boolean result = m.find();
if (result){
for (int temp=0;temp<ERRORTYPE.LENGTH;TEMP++){
if (m.group(1).endsWith(errorType[temp])){
throw new IOException(name+": wrong type");
}
}
try{
//保存上傳的文件到指定的目錄
//在下文中上傳文件至資料庫時,將對這里改寫
item.write(new File("d://" + m.group(1)));
out.print(name+" "+size+"");
}
catch(Exception e){
out.println(e);
}
}
else
{
throw new IOException("fail to upload");
}
}
}
}
catch (IOException e){
out.println(e);
}
catch (FileUploadException e){
out.println(e);
}

}
}
現在介紹上傳文件到伺服器,下面只寫出相關代碼:
sql2000為例,表結構如下:
欄位名:name filecode
類型: varchar image
資料庫插入代碼為:PreparedStatement pstmt=conn.prepareStatement("insert into test values(?,?)");
代碼如下:
。。。。。。
try{
這段代碼如果不去掉,將一同寫入到伺服器中
//item.write(new File("d://" + m.group(1)));

int byteread=0;
//讀取輸入流,也就是上傳的文件內容
InputStream inStream=item.getInputStream();
pstmt.setString(1,m.group(1));
pstmt.setBinaryStream(2,inStream,(int)size);
pstmt.executeUpdate();
inStream.close();
out.println(name+" "+size+" ");
}
。。。。。。
這樣就實現了上傳文件至資料庫

㈡ 如何使用javascript向伺服器提交數據

使用ajax對象 非同步請求伺服器

例如:(如下代碼使用了jquery)

$.ajax({
type:"post",
url:basePath+"notebook/findSpecial.do",//伺服器請求地址
dataType:"json",//伺服器返回的數據類型
data:{},//發送到伺服器的參數(Json形式)
success:function(result){},//請求成功後,接受伺服器傳來的Json字元串,並做相應的處理
error:function(xhr,status,error){alert("請求失敗.");}
});

㈢ 使用JavaScript 實現各種跨域的方法

一、一些概念
①傳統Ajax:交互的數據格式——自定義字元串或XML描述;
跨域——通過伺服器端代理解決。
②如今最優方案:使用JSON格式來傳輸數據,使用JSONP來跨域。
③JSON:一種數據交換格式。基於純文本、被原生JS支持。

格式:兩種數據類型描述符:大括弧{
}、方括弧[
]。分隔符逗號、映射符冒號、定義符雙引好。
④JSONP:一種跨域數據交互協議,非官方。
1、Web頁面調用js文件,可跨域。擴展:但凡有src屬性的標簽都具有跨域能力。
2、跨域伺服器
動態生成數據
並存入js文件(通常json後綴),供客戶端
調用。
3、為了便於客戶端使用數據,形成一個非正式傳輸協議,稱為JSONP。該協議重點是允許用戶傳遞一個callback參數給伺服器,然後伺服器返回數據時
將此callback參數作為函數名包裹住JSON數據,使得客戶端可以隨意定製自己的函數來自動處理返回數據。
二、JSONP實現
實例1——客戶端單方面接收:
①客戶端——在客戶端設置創建一個函數對象,名稱可為callFunc,用於接收伺服器的js數據和對其進行處理。
js數據中的核心是:調用callFunc函數的同時附帶著參數,此參數即data對象的值。
復制代碼
代碼如下:
<script
type="text/javascript">

var
callFunc
=
function(data){

alert('遠程js文件傳來的數據:'
+
data.result);//data為伺服器端的JSON數據對象。

};
</script>
<script
type="text/javascript"
src="http://其他域的js文件.com/remote.js"></script>
②伺服器端——直接調用客戶端js中的函數,並傳入數據。
復制代碼
代碼如下:
callFunc({"result":"value1"});
實例2——客戶端向伺服器傳送
指定函數名,伺服器端接收該函數名
並調用對應函數
將數據以參數形式傳入。
復制代碼
代碼如下:
<script
type="text/javascript">

//
得到航班信息查詢結果後的回調函數

var
flightHandler
=
function(data){

alert('你查詢的航班結果是:票價
'
+
data.price
+
'
元,'
+
'余票
'
+
data.tickets
+
'
張。');

};

//
動態添加鏈接伺服器js文件的script。
//
在url地址中傳遞了一個code參數匹配JSON數據中的某個key,callback參數則告訴伺服器:本地回調函數名為callFuncName。

var
url
=
"http://flightQuery.com/jsonp/flightResult.aspx?code=CA1998&callback=callFuncName";

var
script
=
document.createElement('script');

script.setAttribute('src',
url);

//
將script元素在網頁載入時插入head頭部

document.getElementsByTagName('head')[0].appendChild(script);
</script>
總結:實現的代碼並不復雜,但在實現Ajax跨域、frameset/iframe跨域等卻是效率頗高的。

熱點內容
游戲數據反編譯 發布:2025-02-06 11:05:30 瀏覽:400
逍遙安卓在哪裡下載的視頻 發布:2025-02-06 10:50:42 瀏覽:876
上編程序 發布:2025-02-06 10:49:08 瀏覽:796
會議源碼 發布:2025-02-06 10:47:09 瀏覽:92
phpeclipse斷點 發布:2025-02-06 10:47:02 瀏覽:361
腳本之家知網收錄嗎 發布:2025-02-06 10:39:08 瀏覽:771
昵稱與密碼的意思是什麼 發布:2025-02-06 10:27:38 瀏覽:671
伺服器沒密碼怎麼辦 發布:2025-02-06 10:27:36 瀏覽:206
寶塔面板阿里雲伺服器偽靜態 發布:2025-02-06 10:24:50 瀏覽:342
android輸入框限制 發布:2025-02-06 10:24:47 瀏覽:399