當前位置:首頁 » 文件管理 » cajax上傳圖片

cajax上傳圖片

發布時間: 2022-04-12 20:14:23

『壹』 java中如何實現Ajax方式上傳圖片

你好,據我所知,Ajax不能上傳圖片,因為上傳圖片得把圖片的二進制數據傳送給WEB伺服器。而Ajax不能完成。

如果樓主指點是無刷新上傳圖片。即不更改當前頁面上傳圖片,利用STRUTS並在HTML頁面中加一個iframe標簽,CSS DISPLAY屬性為NONE 而上傳圖片的表單的TARGET屬性等於這個iframe的名字。

『貳』 jqueryajax不能上傳圖片

不能上傳的原因可能是jquery插件使用不正確。

解決方法:

1、在head之間加入jquery引用

<scripttype="text/javascript" src="jquery.js"></script>

<scriptsrc="project/js/jquery.form.js" type="text/javascript"></script>

<scriptsrc="project/js/fileload.js" type="text/javascript"></script>

2、定義fileload.js,代碼如下:

function createHtml(obj) {
var htmstr = [];
htmstr.push( "<form id='_fileForm' enctype='multipart/form-data'>");
htmstr.push( "<table cellspacing="0" cellpadding="3" style="margin:0 auto; margin-top:20px;">");
htmstr.push( "<tr>");
htmstr.push( "<td class="tdt tdl">請選擇文件:</td>");
htmstr.push( "<td class="tdt tdl"><input id="loadcontrol" type="file" name="filepath" id="filepath" /></td>");
htmstr.push( "<td class="tdt tdl tdr"><input type="button" onclick="fileloadon()" value="上傳"/></td>");
htmstr.push( "</tr>");
htmstr.push( "<tr> <td class="tdt tdl tdr" colspan='3'style='text-align:center;'><div id="msg">&nbsp;</div></td> </tr>");
htmstr.push( "<tr> <td class="tdt tdl tdr" style=" vertical-align:middle;">圖片預覽:</td> <td class="tdt tdl tdr" colspan="2"><div style="text-align:center;"><img src="project/Images/NoPhoto.jpg"/></div></td> </tr>");
htmstr.push( "</table>")
htmstr.push( "</form>");
obj.html(htmstr.join(""));
}

function fileloadon() {
$("#msg").html("");
$("img").attr({ "src": "project/Images/processing.gif" });
$("#_fileForm").submit(function () {
$("#_fileForm").ajaxSubmit({
type: "post",
url: "project/help.aspx",
success: function (data1) {
var remsg = data1.split("|");
var name = remsg[1].split("/");
if (remsg[0] == "1") {
var type = name[4].substring(name[4].indexOf("."), name[4].length);
$("#msg").html("文件名:" + name[name.length - 1] + " --- " + remsg[2]);
switch (type) {
case ".jpg":
case ".jpeg":
case ".gif":
case ".bmp":
case ".png":
$("img").attr({ "src": remsg[1] });
break;
default:
$("img").attr({ "src": "project/Images/msg_ok.png" });
break;
}
} else {
$("#msg").html("文件上傳失敗:" + remsg[2]);
$("img").attr({ "src": "project/Images/msg_error.png" });
}
},
error: function (msg) {
alert("文件上傳失敗");
}
});
return false;
});
$("#_fileForm").submit();
}

3、服務端處理上傳。

protected void Page_Load(object sender, EventArgs e)
{
try
{
HttpPostedFile postFile = Request.Files[0];
//開始上傳
string _savedFileResult = UpLoadFile(postFile);
Response.Write(_savedFileResult);

}
catch(Exception ex)
{
Response.Write("0|error|上傳提交出錯");
}

}
public string UpLoadFile(HttpPostedFile str)
{
return UpLoadFile(str, "/UpLoadFile/");
}
public string UpLoadFile(HttpPostedFile httpFile, string toFilePath)
{
try
{
//獲取要保存的文件信息
string filerealname = httpFile.FileName;
//獲得文件擴展名
string fileNameExt = System.IO.Path.GetExtension(filerealname);
if (CheckFileExt(fileNameExt))
{
//檢查保存的路徑 是否有/結尾
if (toFilePath.EndsWith("/") == false) toFilePath = toFilePath + "/";

//按日期歸類保存
string datePath = DateTime.Now.ToString("yyyyMM") + "/" + DateTime.Now.ToString("dd") + "/";
if (true)
{
toFilePath += datePath;
}

//物理完整路徑
string toFileFullPath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + toFilePath;

//檢查是否有該路徑 沒有就創建
if (!System.IO.Directory.Exists(toFileFullPath))
{
Directory.CreateDirectory(toFileFullPath);
}

//得到伺服器文件保存路徑
string toFile = Server.MapPath("~" + toFilePath);
string f_file = getName(filerealname);
//將文件保存至伺服器
httpFile.SaveAs(toFile + f_file);
return "1|" + toFilePath + f_file + "|" + "文件上傳成功";
}
else
{
return "0|errorfile|" + "文件不合法";
}
}
catch (Exception e)
{
return "0|errorfile|" + "文件上傳失敗,錯誤原因:" + e.Message;
}
}

/// <summary>
/// 獲取文件名
/// </summary>
/// <param name="fileNamePath"></param>
/// <returns></returns>
private string getName(string fileNamePath)
{
string[] name = fileNamePath.Split('\');
return name[name.Length - 1];
}
/// <summary>
/// 檢查是否為合法的上傳文件
/// </summary>
/// <param name="_fileExt"></param>
/// <returns></returns>
private bool CheckFileExt(string _fileExt)
{
string[] allowExt = new string[] { ".gif", ".jpg", ".jpeg", ".rar",".png" };
for (int i = 0; i < allowExt.Length; i++)
{
if (allowExt[i] == _fileExt) { return true; }
}
return false;

}

public static string GetFileName()
{
Random rd = new Random();
StringBuilder serial = new StringBuilder();
serial.Append(DateTime.Now.ToString("HHmmss"));
serial.Append(rd.Next(100, 999).ToString());
return serial.ToString();
}

4、運行defualt.aspx頁面以後顯示的效果是:

『叄』 jquery ajax上傳圖片問題

現在基本上沒有真正的AJAX圖片上傳,你想多了
都是偽AJAX上傳
但是如果是HTML5,倒是有可能,使html5的 canvas,可以把圖片序例化成base64字元串,把這個字元串傳到伺服器,處理一下,再保存就OK了,

我想知道你直接ajax怎麼傳,把你本地路徑傳過去嗎~~~~~
肯定是不行的

『肆』 ajax上傳圖片,C#編寫的webserbice接收,無法上傳

不是這樣上傳的,你就傳個圖片路徑伺服器怎麼能獲取到客戶端的文件?
如果需要ajax非同步上傳圖片,有兩種解決方案,
一、採用HTML5的FileReader的readAsDataURL獲取圖片的base64編碼,獲取出來是一個字元串,把這個字元串上傳到伺服器,伺服器接收到採用Convert.FromBase64String獲取圖片byte數組,再轉換成圖片格式保存。
二、使用隱藏form表單和隱藏iframe,將form的target屬性設置為iframe的name,在from表單里放一個file控制項,用它選擇圖片,然後提交form表單,後台接收到圖片保存,返回一段js代碼,類似window.parent.uploadCallback({"state":1,"url":"你保存圖片的路徑"});,然後在頁面寫一個function uploadCallback(result){//處理回調}
不知道有沒有更好的解決辦法,我用過的就這兩種,感覺都挺好用。

『伍』 ajax能上傳圖片嗎

有一個ajaxfileupload的組件 ajaxfileupload.js,可以非同步上傳文件。

『陸』 ajax怎麼上傳圖片

這個一般要使用插件,手動不好搞,你去網路webuploader吧,網路出的上傳插件api全面,也比較好用

『柒』 CI如何ajax方式上傳圖片

方法如下:

1、新建一個CI框架項目ajax,在controllers文件夾下新建控制器img,在img控制器下新建方法index,如下:

注意事項:

使用ajax,要引入js文件,比如jquery-1.7.2.min.js,否則ajax不執行。

『捌』 springmvc+ajax上傳圖片的問題。傳過去的是空值.怎麼接收圖片

因為SpringMVC只有GET請求才能通過方法上加參數獲取到值,POST是不能通過這種方式獲取的,可以通過request.getParameter(key) 或者 封裝成對象(屬性對應前端參數)會自動填充。

另外我記得Ajax上傳文件不能直接用$.ajax這種方式傳,我的方法如下:
var form = new FormData();
var xhr = new XMLHttpRequest();
xhr.open("post", "url", true);

xhr.onload = function () {
alert("上傳完成!");
};
xhr.send(form);

『玖』 php ajax如何上傳圖片

如果為了追求方便,直接使用jquery+uploadify ,這個組合封裝了許多上傳功能,可以實現無縫上傳。比如可以用戶選擇圖片直接自動上傳,然後顯示出來(當然這個腳本是要自己寫的),還有flash動畫,按鈕、進度條比較炫。而且有php後台腳本,甚至不用做修改。但是缺點是不支持iphone ipad。對ie 搜狗 和國內比較渣水的瀏覽器支持不好。
其次可以使用jquery+jqform,腳本簡單,但是沒有flash特效,樣式比較單一,不過其他功能比較全。

最後就是用原生,反正我是寫不出來……

熱點內容
pid匯編程序 發布:2024-11-02 08:28:32 瀏覽:323
c語言數組scanf 發布:2024-11-02 08:28:20 瀏覽:784
android文本框居中 發布:2024-11-02 08:21:55 瀏覽:439
撕裂者哪個配置好 發布:2024-11-02 07:58:49 瀏覽:990
c編寫的程序經過編譯 發布:2024-11-02 07:41:18 瀏覽:941
mc伺服器靈魂綁定如何出售 發布:2024-11-02 07:39:36 瀏覽:583
cf伺服器不同如何一起玩游戲 發布:2024-11-02 07:38:24 瀏覽:945
手機壓縮游戲 發布:2024-11-02 07:27:03 瀏覽:451
c語言的四書五經 發布:2024-11-02 07:21:42 瀏覽:742
vbaexcel資料庫 發布:2024-11-02 07:16:09 瀏覽:11