当前位置:首页 » 文件管理 » cweb上传文件

cweb上传文件

发布时间: 2022-10-03 10:04:53

1. 怎样把文件上传至您的域名指向的Web服务器(或虚拟主机)的根目录

把这个文件下载下来,然后通过ftp把这个文件传到你的站点根目录下即可。

2. 使用CGIC如何实现Web文件上传大神们帮帮忙

用C语言编写cgi程序的话,CGIC是非常流行的库,官方页面及下载地址为: www.boutell.com/cgic/#obtain 不少网站都有文件上传的功能,本文展示如何用CGIC库编写文件上传的服务端程序,最后给出一段简单的HTML代码,供大家测试使用。//upload.c#include #include #include #include #include #include"cgic.h"#define BufferLen 1024int cgiMain(void){ cgiFilePtr file; int targetFile; mode_t mode; char name[128]; char fileNameOnServer[64]; char contentType[1024]; char buffer[BufferLen]; char *tmpStr=NULL; int size; int got,t; cgiHeaderContentType("text/html"); //取得html页面中file元素的值,应该是文件在客户机上的路径名 if (cgiFormFileName("file", name, sizeof(name)) !=cgiFormSuccess) { fprintf(stderr,"could not retrieve filename\n"); goto FAIL; } cgiFormFileSize("file", &size); //取得文件类型,不过本例中并未使用 cgiFormFileContentType("file", contentType, sizeof(contentType)); //目前文件存在于系统临时文件夹中,通常为/tmp,通过该命令打开临时文件。临时文件的名字与用户文件的名字不同,所以不能通过路径/tmp/userfilename的方式获得文件 if (cgiFormFileOpen("file", &file) != cgiFormSuccess) { fprintf(stderr,"could not open the file\n"); goto FAIL; } t=-1; //从路径名解析出用户文件名 while(1){ tmpStr=strstr(name+t+1,"\\"); if(NULL==tmpStr) tmpStr=strstr(name+t+1,"/");//if "\\" is not path separator, try "/" if(NULL!=tmpStr) t=(int)(tmpStr-name); else break; } strcpy(fileNameOnServer,name+t+1); mode=S_IRWXU|S_IRGRP|S_IROTH; //在当前目录下建立新的文件,第一个参数实际上是路径名,此处的含义是在cgi程序所在的目录(当前目录))建立新文件 targetFile=open(fileNameOnServer,O_RDWR|O_CREAT|O_TRUNC|O_APPEND,mode); if(targetFile<0){ fprintf(stderr,"could not create the new file,%s\n",fileNameOnServer); goto FAIL; } //从系统临时文件中读出文件内容,并放到刚创建的目标文件中 while (cgiFormFileRead(file, buffer, BufferLen, &got) ==cgiFormSuccess){ if(got>0) write(targetFile,buffer,got); } cgiFormFileClose(file); close(targetFile); goto END;FAIL: fprintf(stderr,"Failed to upload"); return 1;END: printf("File \"%s\" has been uploaded",fileNameOnServer); return 0;} 假设该文件存储为upload.c,则使用如下命令编辑:gcc -Wall upload.c cgic.c -o upload.cgi 编译完成后把upload.cgi复制到你部署cgi程序的目录(通常命名为cgi-bin)。 正式部署时,请务必修改用open创建新文件那一行代码。把open的第一个参数设置为目标文件在服务器上存储的绝对路径,或者相对于cgi程序的相对路径。本例中,出于简单考虑,在cgi程序所在目录下创建新文件。

3. C#中使用WebClient.UploadFile上传文件没权限,怎么改权限

那个被写的目录需要可以被iuser_***写入权限
另外要注意写入时的路径,如果你是“/upload/abc.txt”,会写到c:去的
要Server.Map(“/upload/abc.txt”)才会到你虚拟目录下的upload,否则你怎么也写不到你的目录。

4. 我用C#写了一个ftp的上传下载程序是bs架构的请问在web程序使用ftp传输文件有什么好处

WEB空间是用来放网页的,可以让别人浏览到,就像虚拟空间一样,一般服务器需要加装IIS或APACHE,
而FTP空间则是用来存放文件专门供下载的,也就是说,FTP空间只能上传和下载,而不能通过IE访问。这种服务器不涉及到网站,一般只装SERVE-U就可以了。

采用的传输协议不一样,一个是HTTP,一个是FTP。

WEB上传与FTP上传的区别
WEB上传:即通过浏览器(IE)来上传文件
FTP上传:简称文件传输协议,通过FTP上传
1,通过IE浏览器上传文件,按照"操作向导"一步步操作完成,用户无须培训;
1,上传之前,需要安装专业上传软件,并对软件加以学习,用户需要学习上传软件;
2,通过分配用户权限发布课件,简单,安全;
2,需要建立FTP服务器及配置设置,专业性强;
3,支持断点续传,支持大文件上传;
3,不支持断点续传,只能重新上传,支持大文件上传;
4,上传课件属性(格式,上传时间,人员等)自动生成,方便快捷;
4,FTP上传后,需要从后台手工输入课件属性,费时费力;
5,上传后的课件,配有审核机制,保证课件质量;
5,FTP上传后的课件,没有审核机制;
6,审核后的课件,自动归类,用户通过校园网浏览;
6,FTP上传的课件后需要手工进行归类,比较烦麻;

5. 如何使用WebService上传文件至SharePoint 文档库中

问题描述: 通过WebService的形式将文件上传至SharePoint的文档库,我认为有2个难点,其中比较好解决的是文件传输,这个文件传输有好多种办法,比如使用ftp协议.最难的一个可能就是权限问题.(原来我的解决方法是正确的,只是模拟用户的时候域名写的不对,哈哈,)
我想会有好多人也会遇到这个问题,我的这个解决方法,在一定程度上可以解决一些问题.(^_^),关于身份模拟请参考msdn中的描述。此程序片段不包含目录验证的代码.
这个问题困扰了我好久.我曾经尝试过多种方法.但一样的程序,在windows应用程序里运行就ok,一放到webservice里就出问题了.(不过今天晚上又测试了多次,证明我的方法是有效的,兴奋中....)
以下是通过文件监控的方式实现的文件上传程序代码:(里面采用了模拟windows用户的方式模拟当前的操作用户)
private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
{
Application.DoEvents();
WindowsImpersonationContext wic = null;
if( wic != null ) wic.Undo();
try
{
System.IO.File.Copy(e.FullPath,"c://AresTemp//"+e.Name,true);
FileStream fStream;
fStream= File.OpenRead("c://AresTemp//"+e.Name);
byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
if(File.Exists("c://AresTemp//"+e.Name)==true)
{
File.Delete("c://AresTemp//"+e.Name);
}

wic =SPUtil.GetWindowsIdentity();
SPWeb myweb=new SPSite(SharePointURL).OpenWeb();
myweb.AllowUnsafeUpdates=true;

myweb.Files.Add(SharePointURL+"/"+e.Name,contents,true);
// if (File.Exists(e.FullPath))
// File.Delete(e.FullPath);
if( wic != null ) wic.Undo();
AresLog.recordLog("文件上传成功","","",e.Name ,e.FullPath);

}
catch(Exception ee)
{
if( wic != null ) wic.Undo();
AresLog.recordLog("上传文件异常","","",ee.Message,ee.StackTrace);
}
}
以下是我写的通过ftp的方式,将文件传输到本地,然后读取本地磁盘文件,上传到sharpoint文档库的代码:(需要注意域名的书写,此代码已经过本机测试成功,但具体环境不同,也可能造成一定的差异)
[WebMethod]
public string UpLoadFilesToSPS(string FtpServer,string FtpUser,string FtpPwd,string FtpPath,string FilesName,string FilesInfo,string targetUrl)
{
//ftp settings
FtpClient myFTP=new FtpClient();
myFTP.Server=FtpServer;
myFTP.Username=FtpUser;
myFTP.Password=FtpPwd;
myFTP.RemotePath=FtpPath;
//filePath,info
string[] fName=Microsoft.VisualBasic.Strings.Split(FilesName,";",-1,Microsoft.VisualBasic.CompareMethod.Text);
string[] fInfo=Microsoft.VisualBasic.Strings.Split(FilesInfo,";",-1,Microsoft.VisualBasic.CompareMethod.Text);
int i=0;
//检查和创建本地环境
if(Directory.Exists("C://AresTemp")==false)
{
Directory.CreateDirectory("C://AresTemp");
}
foreach(string fDirectory in fInfo)
{
if(Directory.Exists("C://AresTemp//"+fDirectory)==false)
{
Directory.CreateDirectory("C://AresTemp//"+fDirectory);
}
}
//文件下载
for(i=0;i<fName.Length;i++)
{
myFTP.DownloadEx(fName[i],"C://AresTemp//"+fInfo[i]+"//"+fName[i],true);
}
myFTP.Close();
WindowsImpersonationContext wic = null;

if( wic != null ) wic.Undo();
//获取模拟用户信息
ZSoft.WindowsImpersonation.WIUser myUser=new ZSoft.WindowsImpersonation.WIUser(ServerUser,ServerName,ServerPassword);
myUser.impersonateValidUser();
wic =myUser.wic;
SPWeb myweb=new SPSite(targetUrl).OpenWeb();
myweb.AllowUnsafeUpdates=true;
for(i=0;i<fName.Length;i++)
{
FileStream fStream;
fStream= File.OpenRead("c://AresTemp//"+fInfo[i]+"//"+fName[i]);
byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
myweb.Files.Add(targetUrl+"/"+fInfo[i]+"//"+fName[i],contents,true);
}
myweb.Close();
if( wic != null ) wic.Undo();
return "文件传输成功!";
}

6. 如何在移动web上上传文件

webservice怎么处理移动端的文件上传
代码如下:

static public ArrayOfBase64Binary SendFile(string[] fPaths)
{
FileStream fStream;
ArrayOfBase64Binary lstB = new ArrayOfBase64Binary();
int fCount = fPaths.Length;
if (fCount != 0)
{
for (int i = 0; i < fCount; i++)
{
fStream = new FileStream(fPaths[i], FileMode.Open, FileAccess.Read);
Byte[] b = new Byte[fStream.Length];
fStream.Read(b, 0, b.Length);
lstB.Add(b);
fStream.Flush();
fStream.Close();
}

}
return lstB;
static public void AcceptFile(List<Byte[]> lstB)
{
for (int i = 0; i < lstB.Count; i++)
{
string path = "C:\\Down\\" + i + ".jpg";
FileStream fStream = new FileStream(path, FileMode.Create, FileAccess.Write);
fStream.Write(lstB[i], 0, lstB[i].Length);
fStream.Close();
}
}

7. linux下如何实现web上传并显示图片

服务器配置
1.如果你安装的Linux版本中带用Apache的话,就在选择所要安装的服务
器的时候,将httpd这个服务选上,Linux安装程序将自动完成Apache的安装工
作,并做好基本的配置。

2.使用可执行文件软件包,这比较适合那些对编译工作不是太熟悉的初级
用户,因为它相对比较简单。

下载软件包apache_1.2.4.e.tar.gz

tar xvzf apache_1.2.4.e.tar.gz

这就完成了安装工作,简单吧!

如果你使用的是RedHat Linux的话,你也可以下载apache_1.2.4.rpm软件
安装包,然后使用rpm -ivh apache_1.2.4.rpm命令安装。

3.如果你想把Apache服务器充分利用起来的话,就一定要自己编译
Apache定制其功能。

下载包含Apache源代码的软件包apache_1.2.4.tar.gz; 然后用tar命令将它解
开; 将当前目录改变为Apache源代码发行版的src目录; 将配置样本文件
(Configuration.tmpl)复制为Configuration文件;

编辑Configuration文件中的配置选项:

Makefile配置选项:一些编译选项:

. "CC="一行指定用什么编译软件编译,一般为"CC=gcc";

. 如果需要将额外的标志(参数)指定给C编译软件,可以使用:

EXTRA_CFLAGS=

EXTRA_LFLAGS=

. 如果系统需要特殊的库和包含文件,可以在这里指定它们:

EXTRA_LIBS=

EXTRA_INCLUDES=

. 如果你要改变代码优化设置的话,你须将下面一句去掉注释,然

后改成你所需要的值:

#OPTIM=-O2

Rule配置选项:用来决定需要什么功能,一般情况下无需改变。

模块配置:模块是Apache的组成部分,它为Apache内核增加新功能。通过使用
模块配置,可以自定义在Apache服务器中需要什么功能,这个部分也是Apache
灵活性的表现。模块配置行如下所示:

AddMole moles/standard/mod_env.o

如果你需要Apache服务器具备什么功能,就将那个模块用AddMole语句加到配
置文件Configuration中去。

下表列出了Apache的模块功能:

模块名 功能 缺省

mod_access 提供基于主机的访问控制命令 y

mod_actions 能够运行基于MIME类型的CGI脚本或HTTP请求方法 y

mod_alias 能执行URL重定向服务 y

mod_asis 使文档能在没有HTTP头标的情况下被发送到客户端 y

mod_auth 支持使用存储在文本文件中的用户名、口令实现认证 y

mod_auth_dbm 支持使用DBM文件存储基本HTTP认证 n

mod_auth_mysql 支持使用MySQL数据库实现基本HTTP认证 n

mod_auth_anon 允许以匿名方式访问需要认证的区域 y

mod_auth_external支持使用第三方认证 n

mod_autoindex 当缺少索引文件时,自动生成动态目录列表 y

mod_cern_meta 提供对元信息的支持 n

mod_cgi 支持CGI y

mod_dir 能够重定向任何对不包括尾部斜杠字符命令的请求 y

mod_env 使你能够将环境变量传递给CGI或SSI脚本 n

mod_expires 让你确定Apache在服务器响应请求时如何处理Expires y

mod_headers 能够操作HTTP应答头标 y

mod_imap 提供图形映射支持 n

mod_include 使支持SSI n

mod_info 对服务器配置提供了全面的描述 y

mod_log_agent 允许在单独的日志文件中存储用户代理的信息 n

mod_log_config 支持记录日志 y

mod_log_referer 提供了将请求中的Referer头标写入日志的功能 n

mod_mime 用来向客户端提供有关文档的元信息 y

mod_negotiation 提供了对内容协商的支持 y

mod_setenvif 使你能够创建定制环境变量 y

mod_speling 使你能够处理含有拼写错误或大小写错误的URL请求 n

mod_status 允许管理员通过WEB管理Apache y

mod_unique_id 为每个请求提供在非常特殊的条件下保证是唯一的标识 n

在src目录下执行:". /configure";

编译Apache:执行命令"make";

根据机器性能的不同,经历一段5-30分钟的编译,就大功告成了。

将编译好的可执行文件httpd复制到/etc/httpd/bin目录下;

将Apache发行版的配置文件:access.conf、httpd.conf、mime.types、
srm.conf文件复制到/etc/httpd/conf目录下。到此为止,安装完成。

8. C#使用webservice把文件上传到服务器

C#使用webservice把文件上传到服务器的代码如下(这里以C:\.jpg这个文件上传为例):

WebService部分:

///<summary>
///保存文件到远程服务器
///</summary>
///<paramname="FileByteArray">待转换字节数组</param>
///<paramname="FileLength">字节长度</param>
///<paramname="SaveToUrl">保存路径</param>
///<returns>返回是否执行成功</returns>
[WebMethod(Description="保存文件到远程服务器.")]
publicboolSaveFile(byte[]FileByteArray,intFileLength,stringSaveToUrl)
{
try
{
FileStreamfs=newFileStream(SaveToUrl,FileMode.OpenOrCreate,FileAccess.Write);
fs.Write(FileByteArray,0,FileLength);
fs.Close();
}
catch{
returnfalse;
}
returntrue;
}

上传文件调用部分:

protectedvoidButton1_Click(objectsender,EventArgse)
{
MangerPhoto.Servicemp=newMangerPhoto.Service();
Response.Write(mp.SaveFile(getByte(),FileUpload1.PostedFile.ContentLength,"C:\.jpg"));
}privatebyte[]getByte(){//获得转化后的字节数组
//得到用户要上传的文件名
stringstrFilePathName=FileUpload1.PostedFile.FileName;
stringstrFileName=Path.GetFileName(strFilePathName);
intFileLength=FileUpload1.PostedFile.ContentLength;
//上传文件
Byte[]FileByteArray=newByte[FileLength];//图象文件临时储存Byte数组
StreamStreamObject=FileUpload1.PostedFile.InputStream;//建立数据流对像
//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
StreamObject.Read(FileByteArray,0,FileLength);
returnFileByteArray;
}

9. 怎样修改web.config上传文件大小

[html] view plain
Asp.Net配置Web.Config更改默认上传文件大小限制!(适用于win7\win2003的IIS)

[html] view plain

[csharp] view plain
<system.web>

<httpRuntime maxrequestLength="1073741824" executionTimeout="3600"/> <!--maxRequestLength就是文件的最大字符数,最大值不能超过2个G左右,executionTimeout是超时时间-->

<compilation debug="true" targetFramework="4.0" />
</system.web>

以下是网上其他人的答案,仅供参考:

修改IIS的applicationhost.config
打开 %windir%/system32/inetsrv/config/applicationhost.config
找到: <requestFiltering>节点,
这个节点默认没有 <requestLimits maxAllowedContentLength="上传大小的值(单位:byte)" /> 元素,IIS 7和IIS 7.5上测试过 最大值只能是<requestLimits maxAllowedContentLength="4294967295" /> <4GB,
为这个节点新增如下事例元素:<requestLimits maxAllowedContentLength="2147483647" /> ,上传的大小将改为2G
注意: %windir%/system32/inetsrv/config/applicationhost.config 文件一定不要用其他机器的文件替换,否则IIS将无法启动
此文件记录了,当前IIS中所有Site , App pool的信息,还有一些与机器相关的配置。

web.config下如果有如下节点(此节点是为IIS 7设计的) ,则修改
<requestLimits maxAllowedContentLength="2147483647" /> 单位与applicationhost.config中的<requestLimits maxAllowedContentLength="2147483647" />一致,它的最大值也只能为4294967295
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
</system.webServer>
总结:asp.NET(IIS 7 and IIS 7.5)上传文件的最大值不能超过2GB

10. 如何使用web server上传文档

我想会有好多人也会遇到这个问题,我的这个解决方法,在一定程度上可以解决一些问题.(^_^),关于身份模拟请参考msdn中的描述。此程序片段不包含目录验证的代码.
这个问题困扰了我好久.我曾经尝试过多种方法.但一样的程序,在windows应用程序里运行就ok,一放到webservice里就出问题了.(不过今天晚上又测试了多次,证明我的方法是有效的,兴奋中....)
以下是通过文件监控的方式实现的文件上传程序代码:(里面采用了模拟windows用户的方式模拟当前的操作用户)
private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
{
Application.DoEvents();
WindowsImpersonationContext wic = null;
if( wic != null ) wic.Undo();
try
{
System.IO.File.Copy(e.FullPath,"c://AresTemp//"+e.Name,true);
FileStream fStream;
fStream= File.OpenRead("c://AresTemp//"+e.Name);
byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
if(File.Exists("c://AresTemp//"+e.Name)==true)
{
File.Delete("c://AresTemp//"+e.Name);
}

wic =SPUtil.GetWindowsIdentity();
SPWeb myweb=new SPSite(SharePointURL).OpenWeb();
myweb.AllowUnsafeUpdates=true;

myweb.Files.Add(SharePointURL+"/"+e.Name,contents,true);
// if (File.Exists(e.FullPath))
// File.Delete(e.FullPath);
if( wic != null ) wic.Undo();
AresLog.recordLog("文件上传成功","","",e.Name ,e.FullPath);

}
catch(Exception ee)
{
if( wic != null ) wic.Undo();
AresLog.recordLog("上传文件异常","","",ee.Message,ee.StackTrace);
}
}
以下是我写的通过ftp的方式,将文件传输到本地,然后读取本地磁盘文件,上传到sharpoint文档库的代码:(需要注意域名的书写,此代码已经过本机测试成功,但具体环境不同,也可能造成一定的差异)
[WebMethod]
public string UpLoadFilesToSPS(string FtpServer,string FtpUser,string FtpPwd,string FtpPath,string FilesName,string FilesInfo,string targetUrl)
{
//ftp settings
FtpClient myFTP=new FtpClient();
myFTP.Server=FtpServer;
myFTP.Username=FtpUser;
myFTP.Password=FtpPwd;
myFTP.RemotePath=FtpPath;
//filePath,info
string[] fName=Microsoft.VisualBasic.Strings.Split(FilesName,";",-1,Microsoft.VisualBasic.CompareMethod.Text);
string[] fInfo=Microsoft.VisualBasic.Strings.Split(FilesInfo,";",-1,Microsoft.VisualBasic.CompareMethod.Text);
int i=0;
//检查和创建本地环境
if(Directory.Exists("C://AresTemp")==false)
{
Directory.CreateDirectory("C://AresTemp");
}
foreach(string fDirectory in fInfo)
{
if(Directory.Exists("C://AresTemp//"+fDirectory)==false)
{
Directory.CreateDirectory("C://AresTemp//"+fDirectory);
}
}
//文件下载
for(i=0;i<fName.Length;i++)
{
myFTP.DownloadEx(fName[i],"C://AresTemp//"+fInfo[i]+"//"+fName[i],true);
}
myFTP.Close();
WindowsImpersonationContext wic = null;

if( wic != null ) wic.Undo();
//获取模拟用户信息
ZSoft.WindowsImpersonation.WIUser myUser=new ZSoft.WindowsImpersonation.WIUser(ServerUser,ServerName,ServerPassword);
myUser.impersonateValidUser();
wic =myUser.wic;
SPWeb myweb=new SPSite(targetUrl).OpenWeb();
myweb.AllowUnsafeUpdates=true;
for(i=0;i<fName.Length;i++)
{
FileStream fStream;
fStream= File.OpenRead("c://AresTemp//"+fInfo[i]+"//"+fName[i]);
byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
myweb.Files.Add(targetUrl+"/"+fInfo[i]+"//"+fName[i],contents,true);
}
myweb.Close();
if( wic != null ) wic.Undo();
return "文件传输成功!";
}

热点内容
java客户端程序 发布:2024-05-04 08:08:11 浏览:939
腾讯视频账号和密码哪里看 发布:2024-05-04 08:08:11 浏览:451
专网数据存储安全问题分析 发布:2024-05-04 07:33:28 浏览:131
如何获得打印机无线密码 发布:2024-05-04 06:44:59 浏览:418
上古诸神录哪里改密码 发布:2024-05-04 06:43:55 浏览:263
灌篮高手手游自动盖帽脚本 发布:2024-05-04 06:42:31 浏览:425
javajs引擎 发布:2024-05-04 06:37:33 浏览:798
javalist重复 发布:2024-05-04 06:19:27 浏览:511
max脚本管理 发布:2024-05-04 06:02:31 浏览:45
自行搭建服务器 发布:2024-05-04 06:01:12 浏览:126