jquery選擇上傳文件
⑴ jquery uploadify 上傳文件總大小控制
定義一個全局變數var totalSize = 0;選擇好之後,觸發一個onSelect事件,可以此時計算單個文件大小,加到全局變數裡面,在開始上傳(onUploadStart事件)的時候,判斷總大小是否超標。如下:
'onSelect' : function(file) {
totalSize += file.size;
},
'onUploadStart':function(file){
if(totalSize>30*1024){
alert("文件大小超標,請重新選擇文件");
$('#fileInput').uploadify('stop');
$('#fileInput').uploadify('cancel', '*');
}
}
⑵ jquery編程怎麼使用filereader實現圖片上傳預覽效果
使用jQuery和FileReader實現圖片上傳預覽效果,主要步驟如下:
首先,創建一個文件選擇標簽,允許用戶上傳圖片。
接著,在jQuery中添加事件監聽器,監聽文件選擇事件。
在監聽器中,獲取用戶選擇的文件並檢查其是否存在。如果文件存在,初始化FileReader對象並設置onload函數。
onload函數在文件讀取完成後觸發,將讀取結果設置為元素的src屬性,實現預覽圖像顯示。
在HTML中,添加一個顯示預覽圖像的元素。
當用戶選擇文件後,預覽圖像會自動在頁面上顯示出來。
完整的HTML和jQuery代碼如下:
通過以上代碼,構建了一個簡單的HTML頁面,包含文件選擇標簽和用於顯示預覽圖像的元素。用戶選擇文件後,jQuery和FileReader協同工作,實現圖片上傳預覽功能。
以上步驟和代碼能幫助你解決圖片上傳預覽效果的問題,如有疑問,歡迎提問。謝謝。
⑶ jquery.fileUpload.js文件上傳問題
了解,fileuploader方法需要先初始化,然後才能觸發上傳,並不需要你手動觸發change事件
你只需
html
<form>
file:<inputtype="file"id="file"name="file">
</form>
js
$('#file').on('change',function(){
//這里可以做校驗,返回false就不會觸發下面的上傳插件,否則就會觸發上傳
if(!this.value||this.value.indexOf('.jpg')==-1){
returnfalse;
}
});
//初始化上傳插件
$('#file').fileupload({
autoUpload:true,//這里為true,則選中文件後就會自動上傳
url:'',
done:$.noop,
fail:$.noop
});
⑷ 使用jquery.form.js實現文件上傳及進度條前端代碼
ajax的表單提交只能提交data數據到後台,沒法實現file文件的上傳還有展示進度功能,這里用到form.js的插件來實現,搭配css樣式簡單易上手,而且高大上,推薦使用。
需要解釋下我的結構, #upload-input-file 的input標簽是真實的文件上傳按鈕,包裹form標簽後可以實現上傳功能, #upload-input-btn 的button標簽是展示給用戶的按鈕,因為需要樣式的美化。上傳完成生成的文件名將會顯示在 .upload-file-result 裡面, .progress 是進度條的位置,先讓他隱藏加上 hidden 的class, .progress-bar 是進度條的主體, .progress-bar-status 是進度條的文本提醒。
去掉hidden的class,看到的效果是這樣的
[圖片上傳失敗...(image-2c700a-1548557865446)]
將上傳事件綁定在file的input裡面,綁定方式就隨意了。
var progress = $(".progress-bar"), status = $(".progress-bar-status"), percentVal = '0%'; //上傳步驟 $("#myupload").ajaxSubmit({ url: uploadUrl, type: "POST", dataType: 'json', beforeSend: function () { $(".progress").removeClass("hidden"); progress.width(percentVal); status.html(percentVal); }, uploadProgress: function (event, position, total, percentComplete) { percentVal = percentComplete + '%'; progress.width(percentVal); status.html(percentVal); console.log(percentVal, position, total); }, success: function (result) { percentVal = '100%'; progress.width(percentVal); status.html(percentVal); //獲取上傳文件信息 uploadFileResult.push(result); // console.log(uploadFileResult); $(".upload-file-result").html(result.name); $("#upload-input-file").val(''); }, error: function (XMLHttpRequest, textStatus, errorThrown) { console.log(errorThrown); $(".upload-file-result").empty(); } });
[圖片上傳失敗...(image-3d6ae0-1548557865446)]
[圖片上傳失敗...(image-9f0adf-1548557865446)]
更多用法可以 參考官網
⑸ jquery 用a標簽控制文件上傳
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title>ajaxFileUpload文件上傳例子</title>
<scripttype="text/javascript"src="<%=baseURL%>/kinth/js/ajaxfileupload.js"></script>
<scripttype="text/javascript">
varflag=0;//flag作用:分兩種情況提交信息,如果是修改操作,沒有修改上傳文件,只修改其他欄位的信息時點保存也能提交信息
functionuploadFile(){
$.ajaxFileUpload({
url:baseURL+"/fileCatalog.do?method=save",//需要鏈接到伺服器地址
secureuri:true,
fileElementId:'file',//文件選擇框的id屬性
success:function(data,status){
varresults=$(data).find('body').html();
varobj=eval("("+results+")");
$("#fileSize").val(obj.fileSize);
$("#fileUrl").val(obj.fileUrl);
$('#fileCatalogForm').submit();
},error:function(data,status,e){
showDialogWithMsg('ideaMsg','提示','文件錯誤!');
}
});
}
functiongetFileName(obj)
{
flag=1;
varpos=-1;
if(obj.value.indexOf("/")>-1){
pos=obj.value.lastIndexOf("/")*1;
}elseif(obj.value.indexOf("\")>-1){
pos=obj.value.lastIndexOf("\")*1;
}
varfileName=obj.value.substring(pos+1);
$("#fileName").val(fileName);
$('.files').text(fileName);
}
functionev_save(){
if(submitMyForm('fileCatalogForm')){
if(flag==0){
$('#fileCatalogForm').submit();
}else{
uploadFile();
}
}
}
functionev_back(){
window.location.href=baseURL+'/fileCatalog.do?method=list';
}
</script>
</head>
<body>
<html:formstyleId="fileCatalogForm"action="/fileCatalog.do?method=save&fileFlag=true"method="post"enctype="application/x-www-form-urlencoded"style="text-align:left;">
<table>
<tr>
<td>附件上傳:</td>
<tdstyle="text-align:left;"id="fileTd">
<inputtype="file"name="file"id="file"onChange="getFileName(this);"/><br/>
</td>
<tdcolspan="2"class="tdr">
<olclass=files>
<c:iftest="${entity.resourceId!=null&&entity.resourceId!=''}"><li>${entity.fileName} 上傳成功</li></c:if>
</ol>
</td>
</tr>
<c:iftest="${entity.resourceId==null||entity.resourceId==''}">
<inputtype="text"name="fileSize"id="fileSize">
</c:if>
<inputtype="hidden"id="fileUrl"name="fileUrl"value="${entity.fileUrl}"
</table>
</html:form>
</body>
⑹ jquery的post方法上傳文件問題。
用jQuery 的Ajax文件上傳的組件:ajaxfileupload.js
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="ajaxfileupload.js"></script>
<script type="text/javascript">
function ajaxFileUpload()
{
$.ajaxFileUpload
(
{
url:'doajaxfileupload.php', //你處理上傳文件的服務端
secureuri:false,
fileElementId:'img',
dataType: 'json',
success: function (data)
{
alert(data.file_infor);
}
}
)
return false;
}
</script>
<input id="img" type="file" size="45" name="img" class="input">
<button class="button" id="buttonUpload" onclick="return ajaxFileUpload();">Upload</button>