在ASP.NET中,Server.MapPath(".")获取的是什么路径?

在ASP.NET中,Server.MapPath(".")获取的是站点的根目录的绝对路径还是 代码所在页面的绝对路径?

2个回答

代码所在页面的物理路径

Server.MapPath()
./当前目录
/网站主目录
../上层目录
~/网站虚拟目录

如果当前的网站目录为E:\wwwroot 应用程序虚拟目录为E:\wwwroot\company 浏览的页面路径为E:\wwwroot\company\news\show.asp
在show.asp页面中使用
Server.MapPath("./") 返回路径为:E:\wwwroot\company\news
Server.MapPath("/") 返回路径为:E:\wwwroot
Server.MapPath("../") 返回路径为:E:\wwwroot\company
Server.MapPath("~/") 返回路径为:E:\wwwroot\company
server.MapPath(request.ServerVariables("Path_Info"))
Request.ServerVariables("Path_Translated")

上面两种方式返回路径为 D:\wwwroot\company\news\show.asp

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求助!在cmd中运行ffmped可以输出flv文件,在.net中调用却不能输出,代码如下
public static bool changeVideoType(string fileName, string playFile) { //获取视频转换工具的路径 string ffmpeg = System.Web.HttpContext.Current.Server.MapPath("../") + ffmpegtool; //获取需要转换的视频路径 string Name = System.Web.HttpContext.Current.Server.MapPath("../") + upFile + "/" + fileName; if ((!System.IO.File.Exists(ffmpeg)) || (!System.IO.File.Exists(Name))) { return false; } //获取视频转换后需要保存的路径 string flv_file = playFile; //创建Process对象 System.Diagnostics.Process pss = new System.Diagnostics.Process(); //不显示窗口 pss.StartInfo.CreateNoWindow = true; //设置启动程序的路径 pss.StartInfo.FileName = ffmpeg; pss.StartInfo.WorkingDirectory = System.Web.HttpContext.Current.Server.MapPath("../")+"tool/"; //设置执行的参数 pss.StartInfo.Arguments = " -i " + Name + "-ab 128 -ar 22050 -qscale 6 -r 29.97 -s " + widthOfFile + "x" + heightOfFile + " " + flv_file; pss.StartInfo.UseShellExecute = false; pss.StartInfo.RedirectStandardError = true; pss.StartInfo.RedirectStandardInput = true; pss.StartInfo.RedirectStandardOutput = true; try { //启动转换工具 pss.Start(); while (!pss.HasExited) { continue; } return true; } catch { return false; } }
用一般处理程序写了个导出excel,结果导不出来,请问是什么问题?
``` public void DownloadExcel(HttpContext context ) { string fileName = "值班人员信息表模板.xlsx";//客户端保存的文件名 System.Web.HttpServerUtility server = System.Web.HttpContext.Current.Server; string filePath = server.MapPath(@"~/template/muban.xlsx");//路径 System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath); context.Response.Clear(); context.Response.ClearContent(); context.Response.ClearHeaders(); context.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName)); context.Response.AddHeader("Content-Length", fileInfo.Length.ToString()); context.Response.AddHeader("Content-Transfer-Encoding", "binary"); context.Response.ContentType = "application/ms-excel"; context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); context.Response.WriteFile(fileInfo.FullName); context.Response.Flush(); context.Response.End(); } ``` ![图片说明](https://img-ask.csdn.net/upload/201911/25/1574658948_824810.png)
asp .net中gridview导入excel路径出现问题怎么解决。
asp.net项目,发布到IIS上运行。 //导入excel号码表事件 protected void BtnImport_Click(object sender, EventArgs e) { string filePath= this.FileUpload1.PostedFile.FileName;//获取表名称 if (filePath != "") { if (filePath.Contains("xlsx"))//判断文件是否存在 { InputExcel(filePath); numberCount = getNumCount("default");//默认显示总条数 pagecount= numberCount/ pageSize + getoverPage(); //获取默认页数,不能整除则加1,能整除加0 ViewState["pagecount"] = pagecount; //将新增后的总页数存入ViewState中 show_phoneNumber("default"); } else { Response.Write("请检查您选择的文件是否为Excel文件!谢谢!"); } } else { Response.Write("请先选择导入文件后,再执行导入!谢谢!"); } } //导入Excel表格 private void InputExcel(string pPath) { string conn = "Provider =Microsoft.ACE.OLEDB.12.0; Data Source =" +Server.MapPath(pPath) + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'"; OleDbConnection oleCon = new OleDbConnection(conn); oleCon.Open(); //代码报错行 string Sql = "select * from [Sheet1$]"; OleDbDataAdapter mycommand = new OleDbDataAdapter(Sql, oleCon); DataSet ds = new DataSet(); mycommand.Fill(ds, "[Sheet1$]"); oleCon.Close(); .......绑定字段写入数据库等操作 } 在导入表格时,只有表格放在C:\Program Files (x86)\IIS Express下才能成功,如果不是这个路径就会在oleCon.Open()报错:....不是本地对象,打断点发现默认路径总是C:\Program Files (x86)\IIS Express,这个该如何改才能保证我本地表格放在任意盘任意位置都能成功?在网上找了很多获取路径的办法都没成功,求大神指点。
asp.net Response.Write Alert 路径的问题
string path = Server.MapPath("./"); //path="c:\\users\\sandy\\documents\\visual studio 2012\\Projects\\WebApplication7\\"; Response.Write("<script>alert('" + path + "');</script>"); 不弹提示,浏览器报 ncaught SyntaxError: Unexpected token ILLEGAL的错误。 貌似是\\ 的原因,不太明白为什么。
ASP.NET文件上传问题,一上传就提示失败
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class xueshengzuoye: System.Web.UI.Page { public static string fname; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request["ID"] != null) { InitData(); } } } private void FileUpLoad() { if (UploadFile.Value != null) { string nam = UploadFile.PostedFile.FileName; //取得文件名(抱括路径)里最后一个"."的索引 int i = nam.LastIndexOf("."); //取得文件扩展名 string newext = nam.Substring(i); //这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复 DateTime now = DateTime.Now; string newname = now.ToFileTimeUtc() + UploadFile.PostedFile.ContentLength.ToString(); //保存文件到你所要的目录,这里是IIS根目录下的uploadfiles目录 //注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里"\"必须用"\\"代替 UploadFile.PostedFile.SaveAs(Server.MapPath("UpLoad/" + newname + newext)); //得到这个文件的相关属性:文件名,文件类型,文件大小 fname = "UpLoad/" + newname + newext; } } protected void InitData() { string id = Request["ID"].ToString(); try { string SQL = "select * from TB_xueshengzuoye where ID='" + id + "'"; DataTable dt = DBHelper.GetDataSet(SQL).Tables[0]; if (dt.Rows.Count > 0) { this.TextBox1.Text = dt.Rows[0]["ZuoYeName"].ToString(); } } catch { } } protected void Button1_Click(object sender, EventArgs e) { if (UploadFile.Value != null && UploadFile.Value != "") { FileUpLoad(); } string SQL = ""; bool iRet = false; if (Request["ID"] != null) { string id = Request["ID"].ToString(); SQL = "update TB_xueshengzuoye set ZuoYeName='" + this.TextBox1.Text + "',URl='" + fname + "' where ID='" + id + "'"; iRet = DBHelper.ExecSql(SQL); } else { SQL = "insert into TB_xueshengzuoye(ZuoYeName,URl,AddUser ) values('" + this.TextBox1.Text + "','" + fname + "','" + Session["username"].ToString() + "')"; iRet = DBHelper.ExecSql(SQL); } if (iRet) { Response.Write("<script>alert('恭喜您,操作成功!');document.location=document.location;</script>"); } else { Response.Write("<script>alert('对不起,操作失败!');document.location=document.location;</script>"); } } protected void Button2_Click(object sender, EventArgs e) { this.TextBox1.Text = ""; } } 为什么一上传文件就提示对不起,操作失败!
求助一个关于asp.netWord加水印的问题
if ( extentionName == "doc" || extentionName == "docx") { //新建一个word文档对象,加载待添加水印的word文档 Document doc = new Document(); doc.LoadFromFile(Server.MapPath("/UploadFile/DescriptionWE/" + setname)); //新建一个图片水印对象并添加待设置为水印的图片 PictureWatermark picture = new PictureWatermark(); picture.Picture = System.Drawing.Image.FromFile(Server.MapPath("/skin/images/water.png")); //根据需要设置图片的大小,然后将其设置为文档的水印 picture.Scaling = 80; doc.Watermark = picture; //保存文本 doc.SaveToFile(Server.MapPath("~/UploadFile/DescriptionWE/") + PFDname); doc.Close(); if (IsEdit) { if (!string.IsNullOrEmpty(Article.FileUpload)) { DeleteFileHelp.DeleteFile("~/UploadFile/DescriptionWE/" + Article.FileUpload); } } Article.FileUpload = PFDname; } 上面是我asp.netWord加水印的代码,走到PictureWatermark picture = new PictureWatermark();就停止了,是不是System.Drawing.Image.FromFile()里面我的路径写错了,请各位帮忙指正下,感谢
ASP.net文件下载遇到的问题
做项目遇到的问题,大神帮忙看看啊!要交工了,来不及了!! 文件显示没有问题,也没有语法错误,点击下载就是弹不出来保存的页面 大神帮帮忙啊!! 预览如下: ![图片说明](https://img-ask.csdn.net/upload/201703/11/1489227322_65666.png) 我的代码如下: ``` using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; public partial class index : System.Web.UI.Page { string root; Table tableDirInfo = new Table(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["dfile"] != null && Request.QueryString["dfile"] != "") { //要下载的文件名称 string downFile = Request.QueryString["dFile".ToString()]; DownLoadFile(downFile); } root = Server.MapPath("~/publicfiles"); GetFileList(root); Panel1.Controls.Add(tableDirInfo); } } private void GetFileList(string strCurDir) { string FileName, FileExt; long FileSize; if (Directory.Exists(Path.GetDirectoryName(strCurDir))) { FileInfo fi; DirectoryInfo dir; TableCell td; TableHeaderCell th; TableRow tr; tr = new TableRow(); th = new TableHeaderCell(); th.Controls.Add(new LiteralControl("文件名")); tr.Cells.Add(th); th = new TableHeaderCell(); th.Controls.Add(new LiteralControl("文件类型")); tr.Cells.Add(th); th = new TableHeaderCell(); th.Controls.Add(new LiteralControl("文件大小")); tr.Cells.Add(th); tableDirInfo.Rows.Add(tr); //根据当前目录建立目录引用对象 DirectoryInfo dirInfo = new DirectoryInfo(strCurDir); //循环判断当前目录下的文件和目录 foreach (FileSystemInfo fsi in dirInfo.GetFileSystemInfos()) { FileName = ""; FileExt = ""; FileSize = 0; if (fsi is FileInfo)//如果是文件 { fi = (FileInfo)fsi; FileName = fi.Name; FileExt = fi.Extension; FileSize = fi.Length; } else//否则是目录 { dir = (DirectoryInfo)fsi; FileName = dir.Name; FileExt = "文件夹"; //获取文件夹路径 GetFileList(strCurDir + "\\" + dir.Name); }//#else //动态添加表格内容 tr = new TableRow(); td = new TableCell(); td.Controls.Add(new LiteralControl(FileName)); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl(FileExt)); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl(FileSize.ToString() + "字节")); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl("<a href=?dFile=" + Server.UrlEncode(fsi.Name) + ">下载</a>")); //string dFile = Server.UrlEncode(fsi.Name); tr.Cells.Add(td); tableDirInfo.Rows.Add(tr); } } } private void DownLoadFile(string fileName) { string filePath = Server.MapPath("~/publicfiles") + fileName; if (File.Exists(filePath)) { FileInfo file = new FileInfo(filePath); Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); Response.AddHeader("Content-Length", file.Length.ToString()); Response.AddHeader("Content-Transfer-Encoding", "binary"); Response.ContentType = "application/octet-stream"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.WriteFile(file.FullName); Response.Flush(); Response.End(); } } } ```
asp.net webuploader多图片上传并保存文件路径到数据库
![图片说明](https://img-ask.csdn.net/upload/201906/22/1561187942_114655.jpg) 要做一个滚动窗功能,使用webuploader插件 不知道在哪获取文件路径,保存到数据库里 上传的upload.js ``` (function( $ ){ // 当domReady的时候开始初始化 $(function() { var $wrap = $('.uploader-list-container'), // 图片容器 $queue = $( '<ul class="filelist"></ul>' ) .appendTo( $wrap.find( '.queueList' ) ), // 状态栏,包括进度和控制按钮 $statusBar = $wrap.find( '.statusBar' ), // 文件总体选择信息。 $info = $statusBar.find( '.info' ), // 上传按钮 $upload = $wrap.find( '.uploadBtn' ), // 没选择文件之前的内容。 $placeHolder = $wrap.find( '.placeholder' ), $progress = $statusBar.find( '.progress' ).hide(), // 添加的文件数量 fileCount = 0, // 添加的文件总大小 fileSize = 0, // 优化retina, 在retina下这个值是2 ratio = window.devicePixelRatio || 1, // 缩略图大小 thumbnailWidth = 110 * ratio, thumbnailHeight = 110 * ratio, // 可能有pedding, ready, uploading, confirm, done. state = 'pedding', // 所有文件的进度信息,key为file id percentages = {}, // 判断浏览器是否支持图片的base64 isSupportBase64 = ( function() { var data = new Image(); var support = true; data.onload = data.onerror = function() { if( this.width != 1 || this.height != 1 ) { support = false; } } data.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="; return support; } )(), // 检测是否已经安装flash,检测flash的版本 flashVersion = ( function() { var version; try { version = navigator.plugins[ 'Shockwave Flash' ]; version = version.description; } catch ( ex ) { try { version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash') .GetVariable('$version'); } catch ( ex2 ) { version = '0.0'; } } version = version.match( /\d+/g ); return parseFloat( version[ 0 ] + '.' + version[ 1 ], 10 ); } )(), supportTransition = (function(){ var s = document.createElement('p').style, r = 'transition' in s || 'WebkitTransition' in s || 'MozTransition' in s || 'msTransition' in s || 'OTransition' in s; s = null; return r; })(), // WebUploader实例 uploader; if ( !WebUploader.Uploader.support('flash') && WebUploader.browser.ie ) { // flash 安装了但是版本过低。 if (flashVersion) { (function(container) { window['expressinstallcallback'] = function( state ) { switch(state) { case 'Download.Cancelled': alert('您取消了更新!') break; case 'Download.Failed': alert('安装失败') break; default: alert('安装已成功,请刷新!'); break; } delete window['expressinstallcallback']; }; var swf = 'expressInstall.swf'; // insert flash object var html = '<object type="application/' + 'x-shockwave-flash" data="' + swf + '" '; if (WebUploader.browser.ie) { html += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '; } html += 'width="100%" height="100%" style="outline:0">' + '<param name="movie" value="' + swf + '" />' + '<param name="wmode" value="transparent" />' + '<param name="allowscriptaccess" value="always" />' + '</object>'; container.html(html); })($wrap); // 压根就没有安转。 } else { $wrap.html('<a href="http://www.adobe.com/go/getflashplayer" target="_blank" border="0"><img alt="get flash player" src="http://www.adobe.com/macromedia/style_guide/images/160x41_Get_Flash_Player.jpg" /></a>'); } return; } else if (!WebUploader.Uploader.support()) { alert( 'Web Uploader 不支持您的浏览器!'); return; } // 实例化 uploader = WebUploader.create({ pick: { id: '#filePicker-2', label: '点击选择图片' }, formData: { uid: 123 }, dnd: '#dndArea', paste: '#uploader', swf: '../Uploader.swf', chunked: false, chunkSize: 512 * 1024, server: './Ajax/UpLoad.ashx', // runtimeOrder: 'flash', accept: { title: 'Images', extensions: 'gif,jpg,jpeg,bmp,png', mimeTypes: 'image/*' }, // 禁掉全局的拖拽功能。这样不会出现图片拖进页面的时候,把图片打开。 disableGlobalDnd: true, fileNumLimit: 300, fileSizeLimit: 200 * 1024 * 1024, // 200 M fileSingleSizeLimit: 50 * 1024 * 1024 // 50 M }); // 拖拽时不接受 js, txt 文件。 uploader.on( 'dndAccept', function( items ) { var denied = false, len = items.length, i = 0, // 修改js类型 unAllowed = 'text/plain;application/javascript '; for ( ; i < len; i++ ) { // 如果在列表里面 if ( ~unAllowed.indexOf( items[ i ].type ) ) { denied = true; break; } } return !denied; }); uploader.on('dialogOpen', function() { console.log('here'); }); // uploader.on('filesQueued', function() { // uploader.sort(function( a, b ) { // if ( a.name < b.name ) // return -1; // if ( a.name > b.name ) // return 1; // return 0; // }); // }); // 添加“添加文件”的按钮, uploader.addButton({ id: '#filePicker2', label: '继续添加' }); uploader.on('ready', function() { window.uploader = uploader; }); // 当有文件添加进来时执行,负责view的创建 function addFile(file) { alert(file.name); var $li = $( '<li id="' + file.id + '">' + '<p class="title">' + file.name + '</p>' + '<p class="imgWrap"></p>'+ '<p class="progress"><span></span></p>' + '</li>' ), $btns = $('<div class="file-panel">' + '<span class="cancel">删除</span>' + '<span class="rotateRight">向右旋转</span>' + '<span class="rotateLeft">向左旋转</span></div>').appendTo( $li ), $prgress = $li.find('p.progress span'), $wrap = $li.find( 'p.imgWrap' ), $info = $('<p class="error"></p>'), showError = function( code ) { switch( code ) { case 'exceed_size': text = '文件大小超出'; break; case 'interrupt': text = '上传暂停'; break; default: text = '上传失败,请重试'; break; } $info.text( text ).appendTo( $li ); }; if ( file.getStatus() === 'invalid' ) { showError( file.statusText ); } else { // @todo lazyload $wrap.text( '预览中' ); uploader.makeThumb( file, function( error, src ) { var img; if ( error ) { $wrap.text( '不能预览' ); return; } if( isSupportBase64 ) { img = $('<img src="'+src+'">'); $wrap.empty().append( img ); } else { $.ajax('../server/preview.php', { method: 'POST', data: src, dataType:'json' }).done(function( response ) { if (response.result) { img = $('<img src="'+response.result+'">'); $wrap.empty().append( img ); } else { $wrap.text("预览出错"); } }); } }, thumbnailWidth, thumbnailHeight ); percentages[ file.id ] = [ file.size, 0 ]; file.rotation = 0; } file.on('statuschange', function( cur, prev ) { if ( prev === 'progress' ) { $prgress.hide().width(0); } else if ( prev === 'queued' ) { $li.off( 'mouseenter mouseleave' ); $btns.remove(); } // 成功 if ( cur === 'error' || cur === 'invalid' ) { console.log( file.statusText ); showError( file.statusText ); percentages[ file.id ][ 1 ] = 1; } else if ( cur === 'interrupt' ) { showError( 'interrupt' ); } else if ( cur === 'queued' ) { percentages[ file.id ][ 1 ] = 0; } else if ( cur === 'progress' ) { $info.remove(); $prgress.css('display', 'block'); } else if ( cur === 'complete' ) { $li.append( '<span class="success"></span>' ); } $li.removeClass( 'state-' + prev ).addClass( 'state-' + cur ); }); $li.on( 'mouseenter', function() { $btns.stop().animate({height: 30}); }); $li.on( 'mouseleave', function() { $btns.stop().animate({height: 0}); }); $btns.on( 'click', 'span', function() { var index = $(this).index(), deg; switch ( index ) { case 0: uploader.removeFile( file ); return; case 1: file.rotation += 90; break; case 2: file.rotation -= 90; break; } if ( supportTransition ) { deg = 'rotate(' + file.rotation + 'deg)'; $wrap.css({ '-webkit-transform': deg, '-mos-transform': deg, '-o-transform': deg, 'transform': deg }); } else { $wrap.css( 'filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation='+ (~~((file.rotation/90)%4 + 4)%4) +')'); // use jquery animate to rotation // $({ // rotation: rotation // }).animate({ // rotation: file.rotation // }, { // easing: 'linear', // step: function( now ) { // now = now * Math.PI / 180; // var cos = Math.cos( now ), // sin = Math.sin( now ); // $wrap.css( 'filter', "progid:DXImageTransform.Microsoft.Matrix(M11=" + cos + ",M12=" + (-sin) + ",M21=" + sin + ",M22=" + cos + ",SizingMethod='auto expand')"); // } // }); } }); $li.appendTo( $queue ); } // 负责view的销毁 function removeFile( file ) { var $li = $('#'+file.id); delete percentages[ file.id ]; updateTotalProgress(); $li.off().find('.file-panel').off().end().remove(); } function updateTotalProgress() { var loaded = 0, total = 0, spans = $progress.children(), percent; $.each( percentages, function( k, v ) { total += v[ 0 ]; loaded += v[ 0 ] * v[ 1 ]; } ); percent = total ? loaded / total : 0; spans.eq( 0 ).text( Math.round( percent * 100 ) + '%' ); spans.eq( 1 ).css( 'width', Math.round( percent * 100 ) + '%' ); updateStatus(); } function updateStatus() { var text = '', stats; if ( state === 'ready' ) { text = '选中' + fileCount + '张图片,共' + WebUploader.formatSize( fileSize ) + '。'; } else if ( state === 'confirm' ) { stats = uploader.getStats(); if ( stats.uploadFailNum ) { text = '已成功上传' + stats.successNum+ '张照片至XX相册,'+ stats.uploadFailNum + '张照片上传失败,<a class="retry" href="#">重新上传</a>失败图片或<a class="ignore" href="#">忽略</a>' } } else { stats = uploader.getStats(); text = '共' + fileCount + '张(' + WebUploader.formatSize( fileSize ) + '),已上传' + stats.successNum + '张'; if ( stats.uploadFailNum ) { text += ',失败' + stats.uploadFailNum + '张'; } } $info.html( text ); } function setState( val ) { var file, stats; if ( val === state ) { return; } $upload.removeClass( 'state-' + state ); $upload.addClass( 'state-' + val ); state = val; switch ( state ) { case 'pedding': $placeHolder.removeClass( 'element-invisible' ); $queue.hide(); $statusBar.addClass( 'element-invisible' ); uploader.refresh(); break; case 'ready': $placeHolder.addClass( 'element-invisible' ); $( '#filePicker2' ).removeClass( 'element-invisible'); $queue.show(); $statusBar.removeClass('element-invisible'); uploader.refresh(); break; case 'uploading': $( '#filePicker2' ).addClass( 'element-invisible' ); $progress.show(); $upload.text( '暂停上传' ); break; case 'paused': $progress.show(); $upload.text( '继续上传' ); break; case 'confirm': $progress.hide(); $( '#filePicker2' ).removeClass( 'element-invisible' ); $upload.text( '开始上传' ); stats = uploader.getStats(); if ( stats.successNum && !stats.uploadFailNum ) { setState( 'finish' ); return; } break; case 'finish': stats = uploader.getStats(); if ( stats.successNum ) { alert( '上传成功' ); } else { // 没有成功的图片,重设 state = 'done'; location.reload(); } break; } updateStatus(); } uploader.onUploadProgress = function( file, percentage ) { var $li = $('#'+file.id), $percent = $li.find('.progress span'); $percent.css( 'width', percentage * 100 + '%' ); percentages[ file.id ][ 1 ] = percentage; updateTotalProgress(); }; uploader.onFileQueued = function( file ) { fileCount++; fileSize += file.size; if ( fileCount === 1 ) { $placeHolder.addClass( 'element-invisible' ); $statusBar.show(); } addFile( file ); setState( 'ready' ); updateTotalProgress(); }; uploader.onFileDequeued = function( file ) { fileCount--; fileSize -= file.size; if ( !fileCount ) { setState( 'pedding' ); } removeFile( file ); updateTotalProgress(); }; uploader.on( 'all', function( type ) { var stats; switch( type ) { case 'uploadFinished': setState( 'confirm' ); break; case 'startUpload': setState( 'uploading' ); break; case 'stopUpload': setState( 'paused' ); break; } }); uploader.onError = function( code ) { alert( 'Eroor: ' + code ); }; $upload.on('click', function() { if ( $(this).hasClass( 'disabled' ) ) { return false; } if ( state === 'ready' ) { uploader.upload(); } else if ( state === 'paused' ) { uploader.upload(); } else if ( state === 'uploading' ) { uploader.stop(); } }); $info.on( 'click', '.retry', function() { uploader.retry(); } ); $info.on( 'click', '.ignore', function() { alert( 'todo' ); } ); $upload.addClass( 'state-' + state ); updateTotalProgress(); }); })( jQuery ); ``` ashx文件 ``` <%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Web; using System.IO; using System.Text; public class Handler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //指定字符集 context.Response.ContentEncoding = System.Text.Encoding.UTF8; if (context.Request["REQUEST_METHOD"] == "OPTIONS") { context.Response.End(); } SaveFile(); } /// <summary> /// 文件保存操作 /// </summary> /// <param name="basePath"></param> private void SaveFile(string basePath = "~/Upload/Images/") { var name = string.Empty; basePath = (basePath.IndexOf("~") > -1) ? System.Web.HttpContext.Current.Server.MapPath(basePath) : basePath; // basePath = FileHelper.GetUploadPath(); HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; //如果目录不存在,则创建目录 if (!Directory.Exists(basePath)) { Directory.CreateDirectory(basePath); } var suffix = files[0].ContentType.Split('/'); //获取文件格式 var _suffix = suffix[1].Equals("jpeg", StringComparison.CurrentCultureIgnoreCase) ? ".jpg" : suffix[1]; var _temp = System.Web.HttpContext.Current.Request["name"]; //如果不修改文件名,则创建随机文件名 //if (!string.IsNullOrEmpty(_temp)) //{ // name = _temp; //} //else //{ Random rand = new Random(24 * (int)DateTime.Now.Ticks); name = rand.Next() + "." + _suffix; //} //文件保存 var full = basePath + name; files[0].SaveAs(full); var _result = "{\"jsonrpc\" : \"2.0\", \"result\" : null, \"Imgurl\" : \"" + name + "\"}"; System.Web.HttpContext.Current.Response.Write(_result); } public bool IsReusable { get { return false; } } } ```
在C#中的客户端编程中,我需要读取项目的一个文件的,该怎么读取?
C#的客户端程序有没有和ASP.NET网站程序一样,有一个像Server.MapPath("/Image/a.jpg")这个方法一样获取项目路径?
用户代码为处理httpexception
string name = FileUpload1.FileName; string size = FileUpload1.PostedFile.ContentLength.ToString(); string type = FileUpload1.PostedFile.ContentType; string type2 = name.Substring(name.LastIndexOf(".") + 1); string ipath = Server.MapPath("\\upimg") + "\\" + name; string fpath = Server.MapPath("..\\upfile") + "\\" + name; string wpath = "..\\upimg\\" + name; if (type2 == "xls") { FileUpload1.SaveAs(fpath); //Image1.ImageUrl = wpath; Label1.Text = "你传的文件名称是:" + name + "<br>文件大小为:" + size + "字节<br>文件类型是:" + type + "<br>后缀名是:" + type2 + "<br>实际路径是:" + ipath + "<br>虚拟路径是:" + wpath; Response.Redirect("index.asp?filename=" + name); } else { //Image1.Visible = false; //FileUpload1.SaveAs(fpath); Label1.Text = "<font color=red>请你选择.Microsoft Office Excel文件,格式为.xls。</font>"; string fpath = Server.MapPath("..\\upfile") + "\\" + name;这里提示用户代码为处理httpexception:“System.Web.HttpException”类型的异常在 System.Web.dll 中发生,但未在用户代码中进行处理。其他信息: 无法使用前导 .. 在顶级目录上退出。
在ASP.NET图片上传不了
未能找到路径“C:\Users\Administrator\Desktop\论文\WSSC\Admin\Upfile\2016410180951.jpg”的一部分。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.IO.DirectoryNotFoundException: 未能找到路径“C:\Users\Administrator\Desktop\论文\WSSC\Admin\Upfile\2016410180951.jpg”的一部分。 源错误: 行 181: pathurl = Server.MapPath("~") + "\\Admin\\Upfile\\" + newname; 行 182: string kb = file1.FileContent.Length.ToString(); 行 183: file.PostedFile.SaveAs(pathurl); 行 184: return newname; 行 185: } 堆栈跟踪: [DirectoryNotFoundException: 未能找到路径“C:\Users\Administrator\Desktop\论文\WSSC\Admin\Upfile\2016410180951.jpg”的一部分。] System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +224 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath) +1142 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) +78 System.IO.FileStream..ctor(String path, FileMode mode) +71 System.Web.HttpPostedFile.SaveAs(String filename) +99 Product_Update.upPhoto(FileUpload file) in c:\Users\Administrator\Desktop\论文\WSSC\Web\Admin\Product_Manage\Product_Update.aspx.cs:183 Product_Update.btnUpPic_Click(Object sender, EventArgs e) in c:\Users\Administrator\Desktop\论文\WSSC\Web\Admin\Product_Manage\Product_Update.aspx.cs:150 System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +115 System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +120 System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563
asp.net模态页上传附件下载文件与上传文件冲突
1、实现功能用模态窗口打开,如下图 ``` window.showModalDialog(url,null,"dialogWidth=800px;dialogHeight=450px;scroll:no"); ``` : ![图片说明](https://img-ask.csdn.net/upload/201608/11/1470877739_946528.jpg) 2、上面的功能是代码如下: 1),后台: ``` case "updates"://下载 attmodel = attbll.GetModel(Convert.ToDecimal(ATTACHIDs)); string path = attmodel.ATTATCHPATH.ToString(); string ATTACHTITLE = attmodel.ATTACHTITLE.ToString(); string ATTFILETYPE = attmodel.ATTATCHTYPE.ToString(); //ATTACHTITLE:文件名称,ATTFILETYPE;.doc后缀名 string name = ATTACHTITLE + ATTFILETYPE; // 保存文件的虚拟路径 string Url = "~/" + path; // 保存文件的物理路径 string FullPath = HttpContext.Current.Server.MapPath(Url); // 去除文件的只读属性 File.SetAttributes(FullPath, FileAttributes.Normal); // 初始化FileInfo类的实例,作为文件路径的包装 FileInfo FI = new FileInfo(FullPath); // 判断文件是否存在 if (FI.Exists) { // 将文件保存到本机 this.Response.Clear(); this.Response.ClearContent(); this.Response.ClearHeaders(); this.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(name)); this.Response.AddHeader("Content-Length", FI.Length.ToString()); this.Response.AddHeader("Content-Transfer-Encoding", "binary"); this.Response.ContentType = "application/octet-stream"; this.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); this.Response.WriteFile(FI.FullName); this.Response.Flush(); Response.Close(); this.Response.End(); BindGrid(); ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", "<script>colse();</script>"); } break; ``` 2)前台标签: ``` <base target="download"/> <iframe id="download" name="download" height="0px" width="0px"></iframe> ``` 3、此时可以下载但是浏览上传的时候,无法刷新gridview如下图: ![图片说明](https://img-ask.csdn.net/upload/201608/11/1470878154_985572.png) 4、如果前台标签为如下代码所示,但是这个标签可以上传附件刷新,但是下载的时候却没有反应: ``` <base target="_self"/> ``` 4、如何解决即可上传附件和下载附件问题,解决 ``` <base target="_self"/> ``` 与 ``` <base target="download"/> ``` 的冲突
关于在gridview中实现下载功能的一点问题
我用的而是mysql, 插入的是个button,在你的代码基础上,我做了点修改,但还是出错,我点了下载之后,没反应,也没说哪里有错,看不出来啊 protected void Button1_Click(object sender, EventArgs e) { //获取imgbtnDelete的Button对象 Button imgbtn = (Button)sender; //引用imgbtnDelete控件的父控件上一级控件 GridViewRow gvr = (GridViewRow)imgbtn.Parent.Parent; //获取文件真实姓名 string sqlStr = "select FileName from downloadlist where FileID='" + GridView1.DataKeys[gvr.RowIndex+1].Value.ToString() + "'"; //打开数据库 conn = new MySqlConnection(strSQL); conn.Open(); MySqlDataAdapter dapt = new MySqlDataAdapter(sqlStr, conn); DataSet ds = new DataSet(); dapt.Fill(ds, "downloadlist"); //获取文件路径 string strFilePath = Server.MapPath("DownLoad/" + ds.Tables["downloadlist"].Rows[0]["FileName"].ToString()); ds.Dispose(); conn.Close(); ////下载指定的文件 if (File.Exists(strFilePath)) { FileInfo fileInfo = new FileInfo(strFilePath); Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "attachment;filename=" + ds.Tables["downloadlist"].Rows[0]["FileName"].ToString()); Response.AddHeader("Content-Length", fileInfo.Length.ToString()); Response.AddHeader("Content-Transfer-Encoding", "binary"); Response.ContentType = "application/octet-stream"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.WriteFile(fileInfo.FullName); Response.Flush(); Response.End(); } ``` ``` 我是把下载文件都放在download这个文件夹中,每个下载文件的信息,我放在downloadlist这个表中,FileID是表的主键,我是想通过点击哪一行的按钮,然后这行的行号和表中的FileID有一个关联,然后可以得到该行的文件名,然后写到路径里面去,实现下载。我不知道路径是不是有问题 ![![图片说明](https://img-ask.csdn.net/upload/201505/13/1431485678_892137.jpg) ![![图片说明](https://img-ask.csdn.net/upload/201505/13/1431485662_742161.jpg)
Request.Form 集合之后,不能调用 BinaryRead。
网站程序以前都是对的,突然爆这个错误了。环境是2003 IIS6.0 uplaod.asp代码如下 <html> <head> <title>图片上传</title> <% '设置需要的参数 dim pw,ph,pinput,pdiv,mybg,fpath,tpath pw = request("pw") ph = request("ph") pinput = request("pinput") pdiv = request("pdiv") mybg = request("mybg") fpath = request("fpath") tpath = request("tpath") if tpath = "" then tpath = fpath end if %> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <style type="text/css"> <!-- body { background-color:#<%=mybg%>; margin:0; padding:0; } .fno{ margin:0; padding:0; } .updiv{ overflow:hidden; width:317px; height:30px; margin:0; padding:0; margin-top:2px; } .sub{ height:22px; font-size:12px; cursor:pointer; } --> </style></head> <body> <div class="updiv"> <form class="fno" name="myform" method="post" action="do_upLoad.asp?pw=<%=pw%>&ph=<%=ph%>&pinput=<%=pinput%>&pdiv=<%=pdiv%>&mybg=<%=mybg%>&fpath=<%=fpath%>&tpath=<%=tpath%>" enctype="multipart/form-data" ><input type="file" name="file1" value="">&nbsp;<input type="submit" name="Submit" class="sub" value=" 上 传 "> </form> </div> </body> </html> do_upLoad.asp代码如下: <!--#include file="upload_5xsoft.inc"--> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <% '将当前的日期和时间转为文件名 dim pw,ph,pinput,pdiv,mybg,fpath,tpath pw = request("pw") ph = request("ph") pinput = request("pinput") pdiv = request("pdiv") mybg = request("mybg") fpath = request("fpath") tpath = request("tpath") 'response.Write(pw&"|"&ph&"|"&pinput&"|"&pdiv&"|"&mybg&"|"&fpath&"|"&tpath) 'response.End()%> <style type="text/css"> <!-- body { background-color:#<%=mybg%>; margin-left: 0px; margin-top: 0px; font-size:12px; line-height:28px; } body a{ color:#FF0000; } --> </style></head> <body> <% function makefilename() dim fname fname = now() fname = trim(fname) fname = replace(fname,"-","") fname = replace(fname,"/","") fname = replace(fname," ","") fname = replace(fname,":","") fname = replace(fname,"PM","") fname = replace(fname,"AM","") fname = replace(fname,"上午","") fname = replace(fname,"下午","") makefilename=fname end function dim upload,file,formName,formPath,mc dim i,l,fileType,newfilename,filenamelist '创建新文件名称 newfilename = makefilename() '建立上传对象 set upload=new upload_5xsoft '上传文件目录 set myfso = Server.CreateObject("Scripting.FileSystemObject") if not myfso.folderexists(Server.MapPath(tpath)) then myfso.createfolder(Server.MapPath(tpath)) end if formPath = Server.mappath(tpath)&"/" '列出所有上传了的文件 for each formName in upload.objFile '生成一个文件对象 set file=upload.file(formName) mc= upload.form("mc") '如果 FileSize > 0 说明有文件数据 if file.FileSize>0 then '取得文件扩展名 fileType = file.FileName '文件名以及扩展名 i = instr(fileType,".") '是否存在“.” l = Len(fileType) if i>0 then fileType = Right(fileType,l-i+1) '得到扩展名 end if newfilename = newfilename & fileType filenamelist = formPath & newfilename '新文件绝对地址和名称 file.SaveAs filenamelist ''保存文件 end if set file=nothing If ChkImg(tpath&"/"&newfilename) Then response.write "<script>parent.document.getElementById('"&pinput&"').value='"&tpath&"/"&newfilename&"';parent.document.getElementById('"&pdiv&"').innerHTML='<img src="""&fpath&"/"&newfilename&""" height="""&ph&""" width="""&pw&""" />';</script>" response.Write("文件上传成功,你可以<a href='upLoad.asp?pw="&pw&"&ph="&ph&"&pinput="&pinput&"&pdiv="&pdiv&"&mybg="&mybg&"&fpath="&fpath&"&tpath="&tpath&"'>重新上传</a>") response.End() Else if myfso.fileexists(Server.MapPath(tpath&"/"&newfilename)) then myfso.deletefile(Server.MapPath(tpath&"/"&newfilename)) end if response.Write("此文件可能含有病毒,请<a href='upLoad.asp?pw="&pw&"&ph="&ph&"&pinput="&pinput&"&pdiv="&pdiv&"&mybg="&mybg&"&fpath="&fpath&"&tpath="&tpath&"'>重新上传</a>") response.End() End If next set myfso=nothing set upload=nothing ''删除此对象 Function ChkImg(img) On Error Resume Next '为了捕获错误信息,需要让代码在出错时能继续执行 Dim RetunValue, ChkJpeg RetunValue = True '如果路径为空,则认为图片不合法 If isnull(img) Then ChkImg = False:Exit Function Set ChkJpeg = Server.CreateObject("Persits.Jpeg") If -2147221005 <> Err Then '如果组件被支持,则用组件检查图片的合法性 ChkJpeg.Open Server.mappath(img) If Err Then RetunValue = False End If Else '如果组件不被支持,则跳过直接返回True RetunValue = True End If '必要的善后工作 If Err.number <> 0 Then Err.clear Set ChkJpeg = Nothing ChkImg = RetunValue End Function %> </body> </html> upload_5xsoft.inc 代码如下: <SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT> dim Data_5xsoft Class upload_5xsoft dim objForm,objFile,Version Public function Form(strForm) strForm=lcase(strForm) if not objForm.exists(strForm) then Form="" else Form=objForm(strForm) end if end function Public function File(strFile) strFile=lcase(strFile) if not objFile.exists(strFile) then set File=new FileInfo else set File=objFile(strFile) end if end function Private Sub Class_Initialize dim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile dim iFileSize,sFilePath,sFileType,sFormValue,sFileName dim iFindStart,iFindEnd dim iFormStart,iFormEnd,sFormName Version="化境HTTP上传程序 Version 2.1" set objForm=Server.CreateObject("Scripting.Dictionary") set objFile=Server.CreateObject("Scripting.Dictionary") if Request.TotalBytes<1 then Exit Sub set tStream = Server.CreateObject("adodb.stream") set Data_5xsoft = Server.CreateObject("adodb.stream") Data_5xsoft.Type = 1 Data_5xsoft.Mode =3 Data_5xsoft.Open Data_5xsoft.Write Request.BinaryRead(Request.TotalBytes) Data_5xsoft.Position=0 RequestData =Data_5xsoft.Read iFormStart = 1 iFormEnd = LenB(RequestData) vbCrlf = chrB(13) & chrB(10) sStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1) iStart = LenB (sStart) iFormStart=iFormStart+iStart+1 while (iFormStart + 10) < iFormEnd iInfoEnd = InStrB(iFormStart,RequestData,vbCrlf & vbCrlf)+3 tStream.Type = 1 tStream.Mode =3 tStream.Open Data_5xsoft.Position = iFormStart Data_5xsoft.CopyTo tStream,iInfoEnd-iFormStart tStream.Position = 0 tStream.Type = 2 tStream.Charset ="gb2312" sInfo = tStream.ReadText tStream.Close '取得表单项目名称 iFormStart = InStrB(iInfoEnd,RequestData,sStart) iFindStart = InStr(22,sInfo,"name=""",1)+6 iFindEnd = InStr(iFindStart,sInfo,"""",1) sFormName = lcase(Mid (sinfo,iFindStart,iFindEnd-iFindStart)) '如果是文件 if InStr (45,sInfo,"filename=""",1) > 0 then set theFile=new FileInfo '取得文件名 iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10 iFindEnd = InStr(iFindStart,sInfo,"""",1) sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) theFile.FileName=getFileName(sFileName) theFile.FilePath=getFilePath(sFileName) theFile.FileExt=GetFileExt(sFileName) '取得文件类型 iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14 iFindEnd = InStr(iFindStart,sInfo,vbCr) theFile.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart) theFile.FileStart =iInfoEnd theFile.FileSize = iFormStart -iInfoEnd -3 theFile.FormName=sFormName if not objFile.Exists(sFormName) then objFile.add sFormName,theFile end if else '如果是表单项目 tStream.Type =1 tStream.Mode =3 tStream.Open Data_5xsoft.Position = iInfoEnd Data_5xsoft.CopyTo tStream,iFormStart-iInfoEnd-3 tStream.Position = 0 tStream.Type = 2 tStream.Charset ="gb2312" sFormValue = tStream.ReadText tStream.Close if objForm.Exists(sFormName) then objForm(sFormName)=objForm(sFormName)&", "&sFormValue else objForm.Add sFormName,sFormValue end if end if iFormStart=iFormStart+iStart+1 wend RequestData="" set tStream =nothing End Sub Private Sub Class_Terminate if Request.TotalBytes>0 then objForm.RemoveAll objFile.RemoveAll set objForm=nothing set objFile=nothing Data_5xsoft.Close set Data_5xsoft =nothing end if End Sub Private function GetFilePath(FullPath) If FullPath <> "" Then GetFilePath = left(FullPath,InStrRev(FullPath, "\")) Else GetFilePath = "" End If End function Private function GetFileExt(FullPath) If FullPath <> "" Then GetFileExt = mid(FullPath,InStrRev(FullPath, ".")+1) Else GetFileExt = "" End If End function Private function GetFileName(FullPath) If FullPath <> "" Then GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1) Else GetFileName = "" End If End function End Class Class FileInfo dim FormName,FileName,FilePath,FileSize,FileExt,FileType,FileStart Private Sub Class_Initialize FileName = "" FilePath = "" FileSize = 0 FileStart= 0 FormName = "" FileType = "" FileExt = "" End Sub Public function SaveAs(FullPath) dim dr,ErrorChar,i SaveAs=true if trim(fullpath)="" or FileStart=0 or FileName="" or right(fullpath,1)="/" then exit function set dr=CreateObject("Adodb.Stream") dr.Mode=3 dr.Type=1 dr.Open Data_5xsoft.position=FileStart Data_5xsoft.copyto dr,FileSize dr.SaveToFile FullPath,2 dr.Close set dr=nothing SaveAs=false end function End Class </SCRIPT> 检查了很久实在找不出原因来,求大神指点
大神们帮忙看看这个asp无组件上传报错。写入文件失败。
ADODB.Stream 错误 '800a0bbc' 写入文件失败。 /x/admin/upload_5xsoft.inc,行 170 iis权限设置肯定是没有问题其他组件都能上传 ``` <!--#include file="jb51_net.conn.asp"--> <html> <head> <title>文件上传</title> <meta name="Description" Content=""> <link rel="stylesheet" href="manage.css" type="text/css"> </head> <body> <% '开发:www.aspprogram.cn '作者:wangsdong '原创文件,请保留此信息 '友情下载,脚本之家:http://www.jb51.net fuptype=session("fuptype")'上传类型 fupname=session("fupname")'文件名 frmname=session("frmname")'form名 bdname=session("bdname") '表单名 if fuptype="" or fupname="" or frmname="" then response.write "<script language='javascript'>" response.write "alert('出现错误,请重新上传!');" response.write "location.href='javascript:history.go(-1)';" response.write "</script>" response.end end if %> <!--#include FILE="upload_5xsoft.inc"--> <% set upload=new upload_5xsoft set file=upload.file("file1") if file.fileSize>0 then filename=fupname+"." filenameend=file.filename filenameend=split(filenameend,".") n=UBound(filenameend) filename=filename&filenameend(n) if fuptype<>"db" then if file.fileSize>1572864 then response.write "<script language='javascript'>" response.write "alert('您上传的文件太大,上传不成功,单个文件最大不能超过1500K!');" response.write "location.href='javascript:history.go(-1)';" response.write "</script>" response.end end if end if if fuptype="adv" or fuptype="pic" then if LCase(filenameend(n))<>"gif" and LCase(filenameend(n))<>"jpg" and LCase(filenameend(n))<>"doc" and LCase(filenameend(n))<>"xls" and LCase(filenameend(n))<>"rar" and LCase(filenameend(n))<>"zip" and LCase(filenameend(n))<>"txt" then response.write "<script language='javascript'>" response.write "alert('不允许上传您选择的文件格式,请检查后重新上传!');" response.write "location.href='javascript:history.go(-1)';" response.write "</script>" response.end end if end if if fuptype="pic" then savepath="../pic_1/"&filename end If file.saveAs Server.mappath(savepath) 'response.write "文件上传成功!上传文件的物理路径为:" 'response.write "<font color=red>"&Server.mappath(savepath)&"</font><br><br>" 'response.write "<a href='"&savepath&"' target='_blank'>点击预览上传的文件</a>" 'response.write "<br><br><INPUT onclick='javascript:window.close();' type=submit value='上传完成'>" response.write "<script>opener.document."&frmname&"."&bdname&".value='"&Replace(savepath,"../","")&"';window.close();</script>" %> <% else response.write "<script language='javascript'>" response.write "alert('文件内容不能为空,单击“确定”返回上一页!');" response.write "location.href='javascript:history.go(-1)';" response.write "</script>" response.end end if set upload=nothing session("fuptype")="" session("fupname")="" session("frmname")="" %> </body> </html> ```
关于IIS配置已有项目问题之数据库连接出错,请检查Conn.asp文件中的数据库参数设置
百度上主流方法都试过,包括父路径,32位开启,设置A USER权限,设置Everyone权限。 以下是Conn.asp文件内容: <% Dim SqlNowString,DataPart_D,DataPart_Y,DataPart_H,DataPart_S,DataPart_W,DataPart_M,CurrentPage Dim Conn,DBPath,CollectDBPath,DataServer,DataUser,DataBaseName,DataBasePsw,ConnStr,CollcetConnStr Const DataBaseType=0 '系统数据库类型,"1"为MS SQL2000数据库,"0"为MS ACCESS 2000数据库 Const MsxmlVersion="3.0" '系统采用XML版本设置 Const EnableSiteManageCode = True '是否启用后台管理认证密码 是: True 否: False Const SiteManageCode = "9999" '后台管理认证密码,请修改,这样即使有人知道了您的后台用户名和密码也不能登录后台 Const IsBusiness=False '是否正式官方授权版本,免费版本请填写False,正式版填写True If DataBaseType=0 then '如果是ACCESS数据库,请认真修改好下面的数据库的文件名 DBPath = "\KS_Data\Aidici_data#.mdb" 'ACCESS数据库的文件名,请使用相对于网站根目录的的绝对路径 Else '如果是SQL数据库,请认真修改好以下数据库选项 DataServer = "(local)" '数据库服务器IP DataUser = "sa" '访问数据库用户名 DataBaseName = "KesionCMS9" '数据库名称 DataBasePsw = "989066" '访问数据库密码 End if '采集数据库路径 CollectDBPath="\KS_Data\Collect\KS_Collect.Mdb" '=============================================================== 以下代码请不要自行修改======================================== CurrentPage=Request("Page") If Not IsNumeric(CurrentPage) Then CurrentPage=1 If CurrentPage<1 Then CurrentPage=1 Call OpenConn Sub OpenConn() On Error Resume Next If DataBaseType = 1 Then ConnStr="Provider = Sqloledb; User ID = " & datauser & "; Password = " & databasepsw & "; Initial Catalog = " & databasename & "; Data Source = " & dataserver & ";" SqlNowString = "getdate()" DataPart_D = "d" DataPart_Y = "year" DataPart_H = "hour" DataPart_S = "s" DataPart_W = "week" DataPart_M = "month" Else ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Data Source=" & Server.MapPath(DBPath) SqlNowString = "Now()" DataPart_D = "'d'" DataPart_Y = "'yyyy'" DataPart_H = "'h'" DataPart_S = "'s'" DataPart_W = "'w'" DataPart_M = "'m'" End If Set conn = Server.CreateObject("ADODB.Connection") conn.open ConnStr If Err Then Err.Clear:Set conn = Nothing:Response.Write "数据库连接出错,请检查Conn.asp文件中的数据库参数设置。出错原因:<br/>" & Err.Description:Response.End CollcetConnStr ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(CollectDBPath) End Sub Sub CloseConn() On Error Resume Next Conn.close:Set Conn=nothing End sub '====================================如果频道启用二级域名,请正确配置以下参数,否则可能导致会员不能登录========================== Const EnabledSubDomain =false rem 网站频道是否启用二级域名 true表示启用 false表示没有启用 Const RootDomain = "kesion.com" rem 网站主域名根,如果有多个子域名,必须设置 '=============================================二级域名配置结束======================================================== '==============================================全局变量类开始============================== Dim GCls:Set GCls=New GlobalVarCls Class GlobalVarCls Public Sql_Use Public StaticPreList,StaticPreContent,StaticExtension,ClubPreContent,ClubPreList Private Sub Class_Initialize() StaticPreList = "list" rem 内容模型伪静态列表前缀 不能包含"?"及"-" staticPreContent = "thread" rem 内容模型伪静态内容前缀 StaticExtension = ".html" rem 内容模型伪静态扩展名 ClubPreContent = "forumthread" rem 伪静态小论坛帖子前缀地址 ClubPreList = "forum" rem 伪静态小论坛版面列表前缀地址 End Sub Private Sub Class_Terminate() Set GCls=Nothing End Sub Public Function Execute(Command) If Not IsObject(Conn) Then OpenConn() On Error Resume Next Set Execute = Conn.Execute(Command) If Err Then Response.Write("查询语句为:" & Command & "<br>") Response.Write("错误信息为:" & Err.Description & "<br>") Err.Clear Set Execute = Nothing Response.End() End If Sql_Use = Sql_Use + 1 End Function Function GetUrl() On Error Resume Next Dim strTemp If LCase(Request.ServerVariables("HTTPS")) = "off" Then strTemp = "http://" Else strTemp = "https://" End If strTemp = strTemp & Request.ServerVariables("SERVER_NAME") If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT") end if strTemp = strTemp & Request.ServerVariables("URL") If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString) end if GetUrl = strTemp End Function '====================标志来访地址================ Public Property Let ComeUrl(ByVal strVar) Session("M_ComeUrl") = strVar End Property Public Property Get ComeUrl ComeUrl= Session("M_ComeUrl") End Property '================================================ End Class '==============================================全局临时变量类结束============================== %>
图片上传,图片被压缩,求大神解答
asp.net图片上传,图片尺寸为2000:600(504kb),上传到服务器后变成了1600:480(62kb),百度后得出结果为要修改iis配置![图片说明](https://img-ask.csdn.net/upload/201601/15/1452828073_54193.png),修改后,通过input file上传的图片尺寸正常,但是通过js的webuploader上传,上传后的尺寸任然为1600:480,调试js发现,在js里获取的文件大小是正常,vs调试,ashx里面获取的图片大小改变了,求解 这段为input file 上传图片的后台代码 protected void btnUpload_Click(object sender, EventArgs e) { HttpFileCollection Files = HttpContext.Current.Request.Files; for (int i = 0; i < Files.Count; i++) { HttpPostedFile PostedFile = Files[i]; if (PostedFile.ContentLength > 0) { string FileName = PostedFile.FileName; string strExPrentFile = FileName.Substring(FileName.LastIndexOf(".") + 1); string sFilePath = "a.jpg"; PostedFile.SaveAs(Server.MapPath(sFilePath)); } else { } } } ``` ``` 这段为webuploader上传图片的后台代码 private void UpLoadFile(HttpContext context, string strUrl, string strToUrl,string userID) { Dsxy.Model.siteconfig siteConfig = new Dsxy.BLL.siteconfig().loadConfig(); string _delfile = DTRequest.GetString("DelFilePath"); HttpPostedFile _upfile = context.Request.Files["Filedata"]; bool _iswater = false; //默认不打水印 bool _isthumbnail = false; //默认不生成缩略图 if (DTRequest.GetQueryString("IsWater") == "1") _iswater = true; if (DTRequest.GetQueryString("IsThumbnail") == "1") _isthumbnail = true; if (_upfile == null) { context.Response.Write("{\"status\": 0, \"msg\": \"请选择要上传文件!\"}"); return; } UpLoad upFiles = new UpLoad(); string msg = upFiles.fileSaveAs(_upfile, _isthumbnail, _iswater, strUrl, strToUrl,userID); //删除已存在的旧文件,旧文件不为空且应是上传文件,防止跨目录删除 if (!string.IsNullOrEmpty(_delfile) && _delfile.IndexOf("../") == -1 && _delfile.ToLower().StartsWith(siteConfig.webpath.ToLower() + siteConfig.filepath.ToLower())) { Utils.DeleteUpFile(_delfile); } //返回成功信息 context.Response.Write(msg); context.Response.End(); } /// <summary> /// 文件上传方法 /// </summary> /// <param name="postedFile">文件流</param> /// <param name="isThumbnail">是否生成缩略图</param> /// <param name="isWater">是否打水印</param> /// <returns>上传后文件信息</returns> public string fileSaveAs(HttpPostedFile postedFile, bool isThumbnail, bool isWater,string strUrl=null,string strToUrl=null,string userID=null) { Dsxy.Model.siteconfig siteConfig = new Dsxy.BLL.siteconfig().loadConfig(); try { string fileExt = Utils.GetFileExt(postedFile.FileName); //文件扩展名,不含“.” int fileSize = postedFile.ContentLength; //获得文件大小,以字节为单位 string fileName = postedFile.FileName.Substring(postedFile.FileName.LastIndexOf(@"\") + 1); //取得原文件名 string newFileName = Utils.GetRamCode() + "." + fileExt; //随机生成新的文件名 //string newFileName = userID + "." + fileExt; //根据ID生成新的文件名 string newThumbnailFileName = "thumb_" + newFileName; //随机生成缩略图文件名 //string upLoadPath = GetUpLoadPath(); //上传目录相对路径 string upLoadPath = strToUrl; //上传目录相对路径 string fullUpLoadPath = AppDomain.CurrentDomain.BaseDirectory + upLoadPath; //try //{ // fullUpLoadPath = Utils.GetMapPath(upLoadPath); //上传目录的物理路径 //} //catch (Exception) //{ // fullUpLoadPath = AppDomain.CurrentDomain.BaseDirectory + upLoadPath; //} string newFilePath = upLoadPath + newFileName; //上传后的路径 string newThumbnailPath = upLoadPath + newThumbnailFileName; //上传后的缩略图路径 //检查文件扩展名是否合法 if (!CheckFileExt(fileExt)) { return "{\"status\": 0, \"msg\": \"不允许上传" + fileExt + "类型的文件!\"}"; } //检查文件大小是否合法 if (!CheckFileSize(fileExt, fileSize)) { return "{\"status\": 0, \"msg\": \"文件超过限制的大小!\"}"; } //检查上传的物理路径是否存在,不存在则创建 if (!Directory.Exists(fullUpLoadPath)) { Directory.CreateDirectory(fullUpLoadPath); } //保存文件 postedFile.SaveAs(fullUpLoadPath + newFileName); //如果是图片,检查图片是否超出最大尺寸,是则裁剪 if (IsImage(fileExt) && (this.siteConfig.imgmaxheight > 0 || this.siteConfig.imgmaxwidth > 0)) { Thumbnail.MakeThumbnailImage(fullUpLoadPath + newFileName, fullUpLoadPath + newFileName, this.siteConfig.imgmaxwidth, this.siteConfig.imgmaxheight); } //如果是图片,检查是否需要生成缩略图,是则生成 if (IsImage(fileExt) && isThumbnail && this.siteConfig.thumbnailwidth > 0 && this.siteConfig.thumbnailheight > 0) { Thumbnail.MakeThumbnailImage(fullUpLoadPath + newFileName, fullUpLoadPath + newThumbnailFileName, this.siteConfig.thumbnailwidth, this.siteConfig.thumbnailheight, "Cut"); } else { newThumbnailPath = newFilePath; //不生成缩略图则返回原图 } //如果是图片,检查是否需要打水印 if (IsWaterMark(fileExt) && isWater) { switch (this.siteConfig.watermarktype) { case 1: WaterMark.AddImageSignText(newFilePath, newFilePath, this.siteConfig.watermarktext, this.siteConfig.watermarkposition, this.siteConfig.watermarkimgquality, this.siteConfig.watermarkfont, this.siteConfig.watermarkfontsize); break; case 2: WaterMark.AddImageSignPic(newFilePath, newFilePath, this.siteConfig.watermarkpic, this.siteConfig.watermarkposition, this.siteConfig.watermarkimgquality, this.siteConfig.watermarktransparency); break; } } //处理显示的地址 string imageUrl = siteConfig.imagespath; newFilePath = imageUrl + strUrl + newFilePath.Substring(newFilePath.LastIndexOf("/") + 1); newThumbnailPath = imageUrl + strUrl + newThumbnailPath.Substring(newThumbnailPath.LastIndexOf("/") + 1); //处理完毕,返回JOSN格式的文件信息 return "{\"status\": 1, \"msg\": \"上传文件成功!\", \"name\": \"" + fileName + "\", \"path\": \"" + newFilePath + "\", \"thumb\": \"" + newThumbnailPath + "\", \"size\": " + fileSize + ", \"ext\": \"" + fileExt + "\"}"; } catch { return "{\"status\": 0, \"msg\": \"上传过程中发生意外错误!\"}"; } } ``` ``` 都是以http流来接收图片的,是什么原因呢,求解
asp 执行出错啊。解码, showbo大神千呼万应你快来啊。
``` 1.txt 45678 | 12-23-23-123- 2.txt的45678在最后一行。 下标越界: '[number: 0]' 如果在2.txt里面查到不到1.txt的scode代码,应该在1.txt里面读取一行新的scode代码,然后再2.txt里面继续查找啊。。。 <%@LANGUAGE="VBScript" CODEPAGE="65001"%> <!--#include file="aspJSON1.17.asp"--> <meta charset="utf-8" /> <% Function EnCodeY(sText,sCode)'当参数传入 Dim arrCode(),i,flag,strResult arrData = split(sText, "-") cntData = UBOUND(arrData) - 1 cntCode = Len(sCode) - 1 Redim arrCode(cntCode) For i = 0 To cntCode arrCode(i) = Mid(sCode, i + 1, 1) Next flag = 0 strResult = "" For i = 0 To cntData strResult = strResult & CHR(Cint(arrData(i)) XOR ASC(arrCode(flag))) IF flag = cntCode Then flag = 0 Else flag = flag + 1 End IF Next EnCodeY = strResult End Function function readText(path,charset)'读文件 set ts=server.CreateObject("adodb.stream") ts.charset=charset'内容编码 ts.mode=3'读写模式 ts.type=2'文本模式 ts.open ts.LoadFromFile path readText=ts.readtext ts.close:set ts=nothing end function function writeText(path,charset,text)'写文件 set ts=server.CreateObject("adodb.stream") ts.mode=3'写写模式 ts.type=2'文本模式 ts.open ts.charset=charset'内容编码 ts.WriteText text,1 ts.SaveToFile path,2 ts.close:set ts=nothing end function function findCode(v,arr)'查找开头数字一样的code值 dim i,l,arrCode l=ubound(arr) for i=0 to l arrCode=split(arr(i)," | ") if arrCode(0)=v then findCode=arrCode(1) exit function end if next end function function doDecode(path1,pathcode,pathrst)'path1:要解码的文件物理路径 pathcode:code文件物理路径 pathrst:解码保存文件物理路径 dim arrA,arrCode,l,i,s,scode,arr '============ arrA=split(replace(readText(path1,"gb2312"),chr(13),""),chr(10))'注意如果要解密的字符不存在1.txt里面注意修改这里,下面的code同理 arrCode=split(replace(readText(pathcode,"gb2312"),chr(13),""),chr(10)) s="" l=ubound(arrA) for i=0 to l arr=split(arrA(i)," | ") scode=findCode(arr(0),arrCode) if scode="" then response.Write arr(0)&"找不到code代码<br>" else if s<>"" then s=s&chr(13)&chr(10) s=s&arr(0)&" | "&EnCodeY(arr(1),scode)'如果不需要前缀id,去掉arr(0)&" | "& end if next writeText pathrst,"gb2312",s end function doDecode server.MapPath("1.txt"),server.MapPath("2.txt"),server.MapPath("3.txt") %> 解码完毕,<a href='3.txt' target='_blank'>点击查看解码文件</a> ```
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
【资源】一个C/C++开发工程师的学习路线(已经无路可退,唯有逆风飞翔)【内附资源页】
声明: 1)该文章整理自网上的大牛和专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与增删。还望大家多多指点。大家都共享一点点,一起为祖国科研的推进...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
20道你必须要背会的微服务面试题,面试一定会被问到
写在前面: 在学习springcloud之前大家一定要先了解下,常见的面试题有那块,然后我们带着问题去学习这个微服务技术,那么就会更加理解springcloud技术。如果你已经学了springcloud,那么在准备面试的时候,一定要看看看这些面试题。 文章目录1、什么是微服务?2、微服务之间是如何通讯的?3、springcloud 与dubbo有哪些区别?4、请谈谈对SpringBoot 和S...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
神级宝库!GitHub 标星 1.2w+,Chrome 最天秀的插件都在这里啦!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个沉迷 Chrome 不能自拔的蒟蒻… 作为一个在远古时代用过什么 IE、360、猎豹等浏览器的资深器哥,当我第一次了解 Chrome 的时候,就被它的美貌给吸引住了… 就在我用了一段时间之后,我坚决的卸载了电脑上其它碍眼的浏览器,并觉得在之前的搬砖生涯中,我不配当哥,我只配是个沙雕… ...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
张朝阳回应迟到 1 分钟罚 500:资本家就得剥削员工
loonggg读完需要2分钟速读仅需 1 分钟大家我,我是你们的校长。前几天,搜狐的董事局主席兼 CEO 张朝阳和搜狐都上热搜了。原因很简单,就是搜狐出了“考勤新规”。一封搜狐对员工发布...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
立即提问