大家好,关于js上传文件到服务器很多朋友都还不太明白,今天小编就来为大家分享关于使用js向服务器上传文件的知识,希望对各位有所帮助!
一、怎么把网页发布到Web服务器
1、远程登录到自己的服务器,进入到存放网页的根目录。我用的是阿里云服务器Ubuntu14.04版本,根目录路径为/var//html。
2、查看自己需要部署的网页的文件组成,文件可以用rzgz上传;如果是文件夹,则需要先创建对应的文件夹,进入到文件夹内再上传文件。该页面中index.html文件可以上传,css、img、js、mid就需要先建立对应文件夹。
3、然后上传文件,输入 rz命令(没有安装rzgz的需要先安装),然后回车并选择需要上传的文件,即可选中上传。
4、接下来上传带文件夹的。例如css。首先mkdir css创建css文件夹, cd css进入到文件夹,然后选中css上传。ll一下查看是否上传成功。
5、js文件、mid文件、img文件同上传css文件。但是注意:在一个文件夹中上传了文件后,需要退出该文件夹,再创建下一个文件夹,继续上传。
6、img文件夹中包含文件夹,依然是先创建对应文件夹,上传文件;退出文件夹;创建下一个文件夹,上传文件....保证文件夹名称和网页文件中的一样,否则路径错误,图片不能正常显示。
7、回到html目录下,ll一下,对照网页文件查看所需文件是否都上传完。
8、在浏览器中输入服务器域名,即可看到自己的页面啦,页面部署工作完结。
二、js文件上传的几种方式(js文件上传)
j*aweb前端上传文件到后台常用的几种方式
1、使用form表单提交
但是这里要记得添加enctype属*,这个属*是指定form表单在向服务器提交之前,对表单数据如何进行编码。文件域中的name="file"属*的值,需要和后台接收的对象名一致,不然接收不到。
2、使用ajax提交文件
使用ajax提交首先引入jquery-form.js文件才能实现,接着使用上面的html代码,加入以js则可以实现ajax提交文件。
3、使用FormData对象
4、后台接收文件,框架采用的SpringBoot微服务框架,因为该框架搭建很方便所以采用这个框架写例子。
js如何上传文件
js采用FileAPI来上传文件的。
FileAPI由一组J*aScript对象以及事件构成。赋予开发人员操作在inputtype=”file”…/文件选择控件中选定文件的能力。图1展示了FileAPI所有的J*aScript的组合关系。
FileAPI简单示例
body
h1FileAPIDemo/h1
p
!--用于文件上传的表单元素--
formname="demoForm"id="demoForm"method="post"enctype="multipart/form-data"
action="j*ascript:uploadAndSubmit();"
pUploadFile:inputtype="file"name="file"//p
pinputtype="submit"value="Submit"//p
/form
divProgessing(inBytes):spanid="bytesRead"
/span/spanid="bytesTotal"/span
/div
/p
/body
运行效果:
几种js实现的动态多文件上传
方式一:事先写好多个input.在时才显示。也就是说上传的最大个数是写死了的。
html
p
ahref='#'onclick='j*ascript:viewnone(more1)'添加附件/a
divid='more1'style='display:none'
inputtype="file"name="attach1"size="50"j*ascript:viewnone(more2)
/span
/div
divid='more2'style='display:none'
inputtype="file"name="attach2"size="50"'
/div
/p
js
SCRIPTlanguage="j*ascript"
functionviewnone(e){
e.style.display=(e.style.display=="none")?"":"none";
}
/script
方式二:这种方式的动态多文件上传是实现了的,很简单的,不说废话看code
html
inputtype="button"name="button"value="添加附件"onclick="addInput()"
inputtype="button"name="button"value="删除附件"onclick="deleteInput()"
spanid="upload"/span
js
scripttype="text/j*ascript"
varattachname="attach";
vari=1;
functionaddInput(){
if(i0){
varattach=attachname+i;
if(createInput(attach))
i=i+1;
}
}
functiondeleteInput(){
if(i1){
i=i-1;
if(!removeInput())
i=i+1;
}
}
functioncreateInput(nm){
varaElement=document.createElement("input");
aElement.name=nm;
aElement.id=nm;
aElement.type="file";
aElement.size="50";
//aElement.value="thanks";
//aElement.onclick=Function("asdf()");
if(document.getElementById("upload").endChild(aElement)==null)
returnfalse;
returntrue;
}
functionremoveInput(nm){
varaElement=document.getElementById("upload");
if(aElement.removeChild(aElement.lastChild)==null)
returnfalse;
returntrue;
}
/script
方式三:动态多文件上传,只是在oFileInput.click();这个地方,这样做就不能上传这个文件了,因为发现它在上传之时就把这个input中的文件置空了。很可能是为了安全着想吧!
另外还有一点就是说,click()只有在ie中才能正常运行。
虽说这种方式最终没能实现上传,但还是留下来参考,看看是否有人可以真正实现上传。
html
Ahref="j*ascript:newUpload();"添加附件/A
TABLEwidth="100%"border="0"cellpadding="0"cellspacing="1"
TBODYid="fileList"/TBODY
/TABLE
DIVid="uploadFiles"style="display:block"/DIV
js
SCRIPTlanguage="j*ascript"
//---新建上传
functionnewUpload(){
varoFileList=document.getElementById("fileList");
varfileCount=oFileList.childNodes.length+1;
varoFileInput=newFileInput("upfile_"+fileCount);
if(selectFile(oFileInput)){
addFile(oFileInput);
}
}
//----选择文件
functionselectFile(oFileInput){
varoUploadFiles=document.getElementById("uploadFiles");
oUploadFiles.endChild(oFileInput);
oFileInput.focus();
oFileInput.click();//不能这样做,可能是为了安全着想吧!
varfileValue=oFileInput.value;
if(fileValue==""){
oUploadFiles.removeChild(oFileInput);
returnfalse;
}
else
returntrue;
}
//---新建一个文件显示列表
functionaddFile(oFileInput){
varoFileList=document.getElementById("fileList");
varfileIndex=oFileList.childNodes.length+1;
varoTR=document.createElement("TR");
varoTD1=document.createElement("TD");
varoTD2=document.createElement("TD");
oTR.setAttribute("id","file_"+fileIndex);
oTR.setAttribute("bgcolor","#FFFFFF");
oTD1.setAttribute("width","6%");
oTD2.setAttribute("width","94%");
oTD2.setAttribute("align","left");
oTD2.innerText=oFileInput.value;
oTD1.innerHTML='Ahref="j*ascript:removeFile('+fileIndex+');"删除/A';
oTR.endChild(oTD1);
oTR.endChild(oTD2);
oFileList.endChild(oTR);
}
//---移除上传的文件
functionremoveFile(fileIndex){
varoFileInput=document.getElementById("upfile_"+fileIndex);
varoTR=document.getElementById("file_"+fileIndex);
uploadFiles.removeChild(oFileInput);
fileList.removeChild(oTR);
}
//---创建一个fileinput对象并返回
functionnewFileInput(_name){
varoFileInput=document.createElement("INPUT");
oFileInput.type="file";
oFileInput.id=_name;
oFileInput.name=_name;
oFileInput.size="50";
//oFileInput.setAttribute("id",_name);
//oFileInput.setAttribute("name",_name);
//oFileInput.outerHTML='INPUTtype=fileid='+_name+'name='+_name+'';
//alert(oFileInput.outerHTML);
returnoFileInput;
}
/SCRIPT
三、使用js向服务器上传文件
(1)js无法向网站服务器传送文件只能用FTP传送文件,(2)是动态网站要用js代码函数与服务器数据库代码建立连接函数。对应数据库,数据,相应单位,通过指定路径传输倒是制定数据单位。例如照片imag数据单位格式标注照片。通过编辑代码任意网络客户端都可上传到数据库imag格式单位标注中.相片.