① java实现文件的上传和下载
用输出流 接受 一个下载地址的网络流
然后将这个输出流 保存到本地一个文件 后缀与下载地址的后缀相同··
上传的话 将某个文件流 转成字节流 上传到某个webservice方法里
-------要代码来代码
URL url=new URL("http://www..com/1.rar");
URLConnection uc=url.openConnection();
InputStream in=uc.getInputStream();
BufferedInputStream bis=new BufferedInputStream(in);
FileOutputStream ft=new FileOutputStream("E://1.rar");
这是下载 上传太麻烦就不给写了
② 如何在FTP上实现文件的上传和下载
你可以下载一个FTP的上传下载软件、、安装就好了
③ java如何实现文件上传和下载的功能
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.*;
import net.sf.json.JSONObject;
import action.StudentAction;
public class UploadServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
boolean result=true;
SmartUpload mySmartUpload=new SmartUpload();
mySmartUpload.initialize(this.getServletConfig(), request,response);
mySmartUpload.setTotalMaxFileSize(50*1024*1024);//大小限制
mySmartUpload.setAllowedFilesList("doc,docx");//后缀名限制
try {
mySmartUpload.upload();
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
myFile.saveAs("/file/"+1+".doc");//保存目录
} catch (SmartUploadException e) {
e.printStackTrace();result=false;
}
//*****************************//
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
PrintWriter out = response.getWriter();
out.print(result);
out.flush();
out.close();
}
}
//我这是ajax方式的,不想这样,把//**********************//以下部分修改就行了
//需要SmartUpload组件,去网上下个就行了,也有介绍的
④ 如何实现在网站的文件上传和下载功能
呵呵, ASP的到JAVA来问啦.
-------给你引用一段。
文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括:
1、如何解决文件上传大小的限制
2、以文件形式保存到服务器
3、转换成二进制字节流保存到数据库以及下载方法
4、上传Internet上的资源
第一部分:
首先我们来说一下如何解决ASP.NET中的文件上传大小限制的问题,我们知道在默认情况下ASP.NET的文件上传大小限制为2M,一般情况下,我们可以采用更改WEB.Config文件来自定义最大文件大小,如下:
<httpRuntime executionTimeout="300" maxRequestLength="40960" useFullyQualifiedRedirectUrl="false"/>这样上传文件的最大值就变成了4M,但这样并不能让我们无限的扩大MaxRequestLength的值,因为ASP.NET会将全部文件载入内存后,再加以处理。解决的方法是利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody和ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据。实现方法如下:
IServiceProviderprovider=(IServiceProvider)HttpContext.Current;
HttpWorkerRequestwr=(HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
byte[]bs=wr.GetPreloadedEntityBody();
.
if(!wr.IsEntireEntityBodyIsPreloaded())
{
intn=1024;
byte[]bs2=newbyte[n];
while(wr.ReadEntityBody(bs2,n)>0)
{
..
}
}这样就可以解决了大文件的上传问题了。
第二部分:
下面我们来介绍如何以文件形式将客户端的一个文件上传到服务器并返回上传文件的一些基本信息
首先我们定义一个类,用来存储上传的文件的信息(返回时需要)。
public class FileUpLoad
{
public FileUpLoad()
{
}
/**//// <summary>
/// 上传文件名称
/// </summary>
public string FileName
{
get
{
return fileName;
}
set
{
fileName = value;
}
}
private string fileName;
/**//// <summary>
/// 上传文件路径
/// </summary>
public string FilePath
{
get
{
return filepath;
}
set
{
filepath = value;
}
}
private string filepath;
/**//// <summary>
/// 文件扩展名
/// </summary>
public string FileExtension
{
get
{
return fileExtension;
}
set
{
fileExtension = value;
}
}
private string fileExtension;
}
另外我们还可以在配置文件中限制上传文件的格式(App.Config):
<?xml version="1.0" encoding="gb2312" ?>
<Application>
<FileUpLoad>
<Format>.jpg|.gif|.png|.bmp</Format>
</FileUpLoad>
</Application>
这样我们就可以开始写我们的上传文件的方法了,如下:
public FileUpLoad UpLoadFile(HtmlInputFile InputFile,string filePath,string myfileName,bool isRandom)
{
FileUpLoad fp = new FileUpLoad();
string fileName,fileExtension;
string saveName;
//
//建立上传对象
//
HttpPostedFile postedFile = InputFile.PostedFile;
fileName = System.IO.Path.GetFileName(postedFile.FileName);
fileExtension = System.IO.Path.GetExtension(fileName);
//
//根据类型确定文件格式
//
AppConfig app = new AppConfig();
string format = app.GetPath("FileUpLoad/Format");
//
//如果格式都不符合则返回
//
if(format.IndexOf(fileExtension)==-1)
{
throw new ApplicationException("上传数据格式不合法");
}
//
//根据日期和随机数生成随机的文件名
//
if(myfileName != string.Empty)
{
fileName = myfileName;
}
if(isRandom)
{
Random objRand = new Random();
System.DateTime date = DateTime.Now;
//生成随机文件名
saveName = date.Year.ToString() + date.Month.ToString() + date.Day.ToString() + date.Hour.ToString() + date.Minute.ToString()
+ date.Second.ToString() + Convert.ToString(objRand.Next(99)*97 + 100);
fileName = saveName + fileExtension;
}
string phyPath = HttpContext.Current.Request.MapPath(filePath);
//判断路径是否存在,若不存在则创建路径
DirectoryInfo upDir = new DirectoryInfo(phyPath);
if(!upDir.Exists)
{
upDir.Create();
}
//
//保存文件
//
try
{
postedFile.SaveAs(phyPath + fileName);
fp.FilePath = filePath + fileName;
fp.FileExtension = fileExtension;
fp.FileName = fileName;
}
catch
{
throw new ApplicationException("上传失败!");
}
//返回上传文件的信息
return fp;
}
然后我们在上传文件的时候就可以调用这个方法了,将返回的文件信息保存到数据库中,至于下载,就直接打开那个路径就OK了。
第三部分:
这里我们主要说一下如何以二进制的形式上传文件以及下载。首先说上传,方法如下:
public byte[] UpLoadFile(HtmlInputFile f_IFile)
{
//获取由客户端指定的上传文件的访问
HttpPostedFile upFile=f_IFile.PostedFile;
//得到上传文件的长度
int upFileLength=upFile.ContentLength;
//得到上传文件的客户端MIME类型
string contentType = upFile.ContentType;
byte[] FileArray=new Byte[upFileLength];
Stream fileStream=upFile.InputStream;
fileStream.Read(FileArray,0,upFileLength);
return FileArray;
}
这个方法返回的就是上传的文件的二进制字节流,这样我们就可以将它保存到数据库了。下面说一下这种形式的下载,也许你会想到这种方式的下载就是新建一个aspx页面,然后在它的Page_Load()事件里取出二进制字节流,然后再读出来就可以了,其实这种方法是不可取的,在实际的运用中也许会出现无法打开某站点的错误,我一般采用下面的方法:
首先,在Web.config中加入:
<add verb="*" path="openfile.aspx" type="RuixinOA.Web.BaseClass.OpenFile, RuixinOA.Web"/>
这表示我打开openfile.aspx这个页面时,系统就会自动转到执行RuixinOA.Web.BaseClass.OpenFile 这个类里的方法,具体实现如下:
using System;
using System.Data;
using System.Web;
using System.IO;
using Ruixin.WorkFlowDB;
using RXSuite.Base;
using RXSuite.Component;
using RuixinOA.BusinessFacade;
namespace RuixinOA.Web.BaseClass
{
/**//// <summary>
/// NetUFile 的摘要说明。
/// </summary>
public class OpenFile : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//从数据库中取出要下载的文件信息
RuixinOA.BusinessFacade.RX_OA_FileManager os = new RX_OA_FileManager();
EntityData data = os.GetFileDetail(id);
if(data != null && data.Tables["RX_OA_File"].Rows.Count > 0)
{
DataRow dr = (DataRow)data.Tables["RX_OA_File"].Rows[0];
context.Response.Buffer = true;
context.Response.Clear();
context.Response.ContentType = dr["CContentType"].ToString();
context.Response.AddHeader("Content-Disposition","attachment;filename=" + HttpUtility.UrlEncode(dr["CTitle"].ToString()));
context.Response.BinaryWrite((Byte[])dr["CContent"]);
context.Response.Flush();
context.Response.End();
}
}
public bool IsReusable
{
get { return true;}
}
}
}
执行上面的方法后,系统会提示用户选择直接打开还是下载。这一部分我们就说到这里。
第四部分:
这一部分主要说如何上传一个Internet上的资源到服务器。前面我们有一篇文章详细介绍了使用方法,这里我不再多说。
请参考:将动态页面转化成二进制字节流
第五部分:总结
今天简单的介绍了几种文件上传与下载的方法,都是在实际的项目开发中经常需要用到的,可能还有不完善的地方,希望大家可以互相交流一下项目开发中的经验。写的不好的地方,请指正,谢谢!
⑤ 上传和下载是什么意思怎样上传和下载文件
上传就是把本地的文件放到网络服务器上
下载相反,是把网络服务器上的文件复制回来
下载文件需要别人提供存放在网络服务器上的文件才行
下载还分服务器类和P2P类,如BT就算是P2P的,他下载的文件不在服务器上,而是在别的网络用户机子上
上传则需要网络空间,用WEB或FTP的方式将文件从本地传到网络空间上
⑥ 下载和上传有什么不同
这两个事情唯一相同的,就是都属于文件交互的过程。
但用途是大大不一样的。
下载:将网络上共享的资源,选择你喜欢的,对自己有用的,存到本地电脑中,方便随时读取使用,不用每次都连到网络上重新搜索。
上传:将自己电脑里的文件、图片等发布到网络中,供大家分享;
或者上传到自己的网络硬盘空间中,方便自己在外面的时候,随时随地都可以读取自己的文件。
无论上传还是下载,目的都是资源共享或者为自己提供方便。
请根据实际需要选择使用。
但切忌维护网络环境,不要随便上传或下载不和谐的资源文件,以免引起不必要的麻烦。
⑦ 网站里面的文件的上传和下载怎么做
用无组件上传类来做上传。。下载只要读取下载路径就可以了。很简单
⑧ 上传和下载文件的原理
《文件上传原理:Web上传文件的原理及实现》
下载了慢慢看吧:
www.crazycoder.cn/mypdf/1487.pdf
下载:掌握ftp传输协议就可以了。
HTTP:
GET ***
Content range: xxx-xxx
...
check for return code 200, 220, 3xx, 4xx, 5xx
FTP:
USER
PASS
SIZE
PORT
REST
RETR
QUIT
check for return codes of each command
多开几条连接,必要时还可以适当提高下载线程的优先级。断点续传对于HTTP一般是用Range字段实现、FTP一般用REST命令——当然,你的程序自身必须维护一个“已接收字节”之类的数据,用已提交这些请求。
去找些HTTP、FTP协议的资料,都有详细的讲解。
==========================================================
软件原理 。主要是用软件上传和下载的原理是怎样的?
这个很难用1,2句话说清楚,因为有IE下载,web下载,BT下载原理各不相同
你还是去看看相关的书吧
⑨ 百度知道的文件上传和下载功能怎样使用
第一步:登录
网络的用户可以直接登录网络文库,如果您还没有网络id,先注册一个。
请注意:被封禁用户将无上传文档和下载文档的权限。
--------------------------------------------------------------------------------
第二步:点击“分享我的文档”按钮
在首页和详细文档页等页面,有一个橘黄色的按钮,“分享我的文档”,点击后进入文档上传页面。整个文档上传操作简单快捷,主要包括两个部分:提交文档附件;填写文档简介。
--------------------------------------------------------------------------------
第三步:上传文档一——提交文档附件
A: 点击上传文档页面的“浏览”按钮上传文档
请从自己本地电脑上上传附件。
附件上传完成后,点击“开始上传”按钮,您提交的附件会进行自动上传。
B: 需要注意的是,目前文档支持的类型包括:
.doc/.docx;.ppt/.pptx/.pps;.xls/.xlsx;.pot;.pps;.vsd;.rtf
.wps;.et;.dps.pdf.txtC: 为了保证用户的上传速度,我们允许上传大小小于 10M 的文档。
若您的文档大小超过10M。我们建议您对文档进行分拆,例如将一份word文档中的内容,分拆为上下两部分进行上传。
--------------------------------------------------------------------------------
第四步:上传文档——填写文档简介
A: 文档标题默认为您上传的附件的名称。您也可以进行修改。文档标题不能为空,最长可以输入50个汉字。
B: 对文档进行简要的介绍,能够方便其他用户快速了解您文档中所包含的主要内容。
文档介绍不能为空,最长可以输入300个汉字。
C: 每一份文档都有所属的正确分类,我们建议您为自己的文档选择合适的分类,这能够让您的文档得到更多的浏览和下载。
D: 您可以在上传时,选择您的文档被下载时对方所需付出的财富值,也即文档的售价。
我们建议您将售价设定为免费,方便文档的快速分享,同时也会获得系统的财富值奖励。
知道财富值和网络文库财富值不能通用、
如果你的文库财富值足够还是不能下载的话,
1.IE浏览器:菜单栏——工具——管理加载项——“显示:IE中当前加载的加载项”下,在“已启用”项下,找到“迅雷下载支持”,将其禁用,确定,重启IE浏览器。
2. 360浏览器:菜单栏——工具——下载器——(右下方)设置——(在“常规”栏下)将“默认的下载工具”后的向下的小箭头点开,在下拉列表中,选“用IE下载”,确定。
或者这样【不要用迅雷下载,关闭迅雷监视,用IE流览器进入网络文库,登陆后,点击文档下边的“下载此文档”就可以下载了
如果你的IE默......余下全文>>