asp.net网站发布后,上传文件时,而会出现路径在服务器中查找的问题,怎样解决?
在ASPNET中。当一个网站发布出去后,你在另一台机器上访问,利用文件上传控件上传一个文件时,网站会在你服务器电脑中找你上传的文件路径。就会出现找不到文件的错误。你们有遇到过吗? 请教!补充: 我的截图上就可以看出来啊!服务器上肯定不存在啊。我是想怎么解决啊。 我网站发布到服务器,是在另台机器上访问,上传文件,网站代码却不是从我的机器上查找。而是从服务器上查找路径。怎样做到从我的机器上查找呢? 求哪段代码能够从本地查找 补充: 我是用的绝对路径!就算是用相对路径的话。也要把文件上传到服务器的工程目录下啊? 补充: 把文件上传到服务器时,还是要找路径。还是会去从服务器找吧? 那还是找不到啊! 补充: 想在本地用个FileUpload浏览的路径string fullFileName = thisFile1PostedFileFileName;//上传的东西的路径int position = fullFileNameLastIndexOf('\\');string fileName = fullFileNameSubstring(position + 1);//改上传东西的名字避免重复thisFile1PostedFileSaveAs(uploadPath + DateTimeNowMillisecond + fileName);//上传 补充: 这就是相对路径,在message前加个~/不就行了, 补充: 你不是上传吗,怎么有delete,? 追问: 具体的说下吧!我是数据导出到EXCEL表格 ,我用微软上传控件得到路径,然后 把数据保存到EXCEL表格中去。找路径时在服务器找所以会出现路径找不到。(由于微软上传控件必须选择一个文件路径才能上传。所以就选择个文件在删除这个文件)。然后在通过 connString = "Provider=MicrosoftJetOLEDB40;Data Source=" + FilePath + ";Extended Properties=Excel 50;"; 新建Excel文件,把数据库数据导出到Excel表格 回答: 哦 有创意,呵呵,不会导出asp,winform里用过不过的要导各个dll文件,呵呵很麻烦的。 追问: 顺便问你句啊。 工程目录怎么获得。 回答: server。path()。这个就获得了,很容易把 追问: 你这个能吗?server都没有这个方法啊? mapPath() 好像也不行列! 回答: 但是就是mappath,能吧,获得工程的路径,你输出一下,我以前就是那么用的 其他回答(2)ID无法显示5级2009-06-02你确定你那个路径在服务器上存在?使用绝对路径 补充: 那你使用SystemWebHostingHostingEnvironmentApplicationPhysicalPath就行了 补充: 服务器访问的是服务器的路径,你想在本地用个FileUpload浏览的路径就行了?肯定是不行的啊。2步工作必须做,上传到服务器对应路径,读取服务器对应路径文件。 补充: 不是肯定不行吗?是一定不行,你服务器都有随便访问客户端的权限了,那么客户端还存在什么安全可言。 补充: try{if (!fileuploadExcelHasFile){return;}if (fileuploadExcelPostedFileContentType != "application/vndms-excel"){ResponseWrite("<script>alert('文件类型应该为Excel!')</script>");return;}fileuploadExcelSaveAs(服务器文件路径);if (!FileExists(服务器文件路径)){ResponseWrite("<script>alert('导入文件不存在!')</script>");return;}if (导入的方法){ResponseWrite("<script>alert('导入成功!')</script>");FileDelete(服务器文件路径);}elseECommonAlert(this, "导入失败!");}catch{ECommonAlert(this, "导入失败!");
这个可以先不检查代码,你可以先试试这个ftp用你的用户能否登录,也就是说用工具直接连接你要连接的ftp(比如FlashFXP),如果可以,再去检查一下你代码中赋值的地方,ftp地址、用户名、密码是否正确。
我上次做的一个是sftp,和ftp有点点小区别
ASPnet 上传整个文件夹 代码部分
using System;
using SystemCollections;
using SystemComponentModel;
using SystemData;
using SystemDrawing;
using SystemWeb;
using SystemWebSessionState;
using SystemWebUI;
using SystemWebUIWebControls;
using SystemWebUIHtmlControls;
namespace WebPortal
{
//<summary>
//UpLoad 的摘要说明。
//实现多文件上传
//</summary>
public class Upload : SystemWebUIPage
{
protected SystemWebUIWebControlsButton UploadButton;
protected SystemWebUIWebControlsLabel strStatus;
private void Page_Load(object sender, SystemEventArgs e)
{
//在此处放置用户代码以初始化页面
if (thisIsPostBack) thisSaveImages();}
private Boolean SaveImages()
{//'遍历File表单元素
HttpFileCollection files=HttpContextCurrentRequestFiles;
//'状态信息
SystemTextStringBuilder strMsg=new SystemTextStringBuilder();
strMsgAppend("上传的文件分别是:<hr color=red>");
try{
for(int iFile=0; iFile < filesCount; iFile++)
{//'检查文件扩展名字
HttpPostedFile postedFile=files[iFile];
string fileName, fileExtension;
fileName=SystemIOPathGetFileName(postedFileFileName);
if (fileName != "") {
fileExtension=SystemIOPathGetExtension(fileName);
strMsgAppend("上传的文件类型:"+postedFileContentTypeToString()+"<br>");
strMsgAppend("客户端文件地址:"+postedFileFileName+"<br>");
strMsgAppend("上传文件的文件名:"+fileName+"<br>");
strMsgAppend("上传文件的扩展名:"+fileExtension+"<br><hr>");
//'可根据扩展名字的不同保存到不同的文件夹
//注意:可能要修改你的文件夹的匿名写入权限。
postedFileSaveAs(SystemWebHttpContextCurrentRequestMapPath("images/")+fileName);}}
strStatusText=strMsgToString();
return true;}
catch(SystemException Ex){
strStatusText=ExMessage;
return false;}}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{//CODEGEN: 该调用是 ASPNET Web 窗体设计器所必需的。
InitializeComponent();
baseOnInit(e);}
//<summary>
//</summary>
private void InitializeComponent()
{thisID="Upload"; <br/>thisLoad+=new SystemEventHandler(thisPage_Load);}
#endregion}}
0条评论