获取IP相关信息和文件上传

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取IP相关信息和文件上传相关的知识,希望对你有一定的参考价值。

获取IP相关信息

要获取用户访问者的IP地址相关信息,可以利用依赖注入,获取IHttpConnectionFeature的实例,从该实例上可以获取IP地址的相关信息,实例如下:

var connection1 = Request.HttpContext.GetFeature<IHttpConnectionFeature>();
var connection2 = Context.GetFeature<IHttpConnectionFeature>();

var isLocal = connection1.IsLocal;                  //是否本地IP 
var localIpAddress = connection1.LocalIpAddress;    //本地IP地址
var localPort = connection1.LocalPort;              //本地IP端口
var remoteIpAddress = connection1.RemoteIpAddress;  //远程IP地址
var remotePort = connection1.RemotePort;            //本地IP端口

类似地,你也可以通过IHttpRequestFeatureIHttpResponseFeatureIHttpClientCertificateFeatureIWebSocketAcceptContext等接口,获取相关的实例,从而使用该实例上的特性,上述接口都在命名空间Microsoft.AspNet.HttpFeature的下面。

文件上传

MVC6在文件上传方面,给了新的改进处理,举例如下:

<form method="post" enctype="multipart/form-data">
    <input type="file" name="files" id="files" multiple />
<input type="submit" value="submit" />
</form>

我们在前端页面定义上述上传表单,在接收可以使用MVC6中的新文件类型IFormFile,实例如下:

[HttpPost]
public async Task<IActionResult> Index(IList<IFormFile> files)
{
    foreach (var file in files)
    {
        var fileName = ContentDispositionHeaderValue
            .Parse(file.ContentDisposition)
            .FileName
            .Trim(‘"‘);// beta3版本的bug,FileName返回的字符串包含双引号,如"fileName.ext"
        if (fileName.EndsWith(".txt"))// 只保存txt文件
        {
            var filePath = _hostingEnvironment.ApplicationBasePath + "\\wwwroot\\"+ fileName;
            await file.SaveAsAsync(filePath);
        }
    }
    return RedirectToAction("Index");// PRG
}

以上是关于获取IP相关信息和文件上传的主要内容,如果未能解决你的问题,请参考以下文章

Delphi - Indy idFTP控件实现文件的上传和下载

javascript 上传文件到阿里云的oss,上传文件成功后怎么获取文件的真实路径?

文件上传的基本知识

刚由主机商开通一个ftp空间,用户名和密码还有ip地址都有了,文件也上传了,怎样通过浏览器直接下载文件?

文件上传基础

POST图片上传