ftp 站点的创建实现文件的上传和下载 以及 ftp没有权限上传文件(错误:200 Type set to I)

本文介绍如何在IIS中配置FTP服务,并详细说明了如何通过浏览器访问及上传文件的过程。针对中文文件名上传失败的问题给出了具体解决方案。

当你已经配置好iis.

步骤:

一:随便在一个盘下创建一个文件bb(文件名可以自己取)我的在:D:\bb

二:进入iis


接着:


接着下一步:


接着下一步:


然后点击完成

三:进入D:\bb,新建一个文件夹


打开浏览器,输入ftp:://10.203.68.51:45  其中45是我设置的端口号,10.203.68.51是我本机的ip地址,(你需要改为你自己的),可以看到如下图:


四:双击计算机图标


地址栏上输入:ftp://10.203.68.51:45   ( ip地址和端口号改成你自己设置的)


回车,然后进入如下图:


这时候你就可以进行拖拽上传文件了

但是当我想要拖拽上传一个  以中文格式命名的文件夹得时候,产生了如下错误


解决办法:把文件名改为英文或者数字 ,下划线组成的就可以成功上传了。


原因:

 ftp协议中有些扩展字符是保留字,而有些中文字符就可能是保留字(有些中文没事),于是出现问题。尽量不要以中文的方式进行命名。

这样就可以进行上传文件了.

如果还没有解决,那么就应该考虑权限是否漏掉。

关于权限问题

 一.确保权限已经打开


比如我的是允许所有匿名用户读写


二.  如果在局域网下,从另一台机子上传,还需要关闭防火墙。



<think> 我们正在处理的是上传文件到IIS服务器时提示"未指定错误"的问题。根据引用资料IIS服务器的特点,以下是系统化的解决方案: ### 一、检查IIS服务器基础配置 1. **确认IIS已安装并运行** 参考引用[1]的方法,通过控制面板→程序功能→启用或关闭Windows功能,确保已勾选"IIS管理控制台""ASP.NET"等必要组件[^1]。 2. **检查应用程序池状态** - 打开IIS管理器→应用程序池 - 确保对应站点的应用程序池处于"Running"状态 - 若停止则右键启动,若频繁停止需检查事件查看器 ### 二、解决上传文件大小限制 引用[2]指出IIS默认限制上传大小为30MB(约28.6MiB),超出会导致错误: 1. **修改IIS请求限制** ```bash # 通过命令行工具调整(需管理员权限) %windir%\system32\inetsrv\appcmd set config "YourSiteName" -section:requestFiltering -requestLimits.maxAllowedContentLength:1073741824 ``` 此处将限制设为1GB(1073741824字节) 2. **修改ASP.NET设置(web.config)** ```xml <configuration> <system.web> <!-- 单位KB,此处100MB --> <httpRuntime maxRequestLength="102400" /> </system.web> </configuration> ``` ### 三、权限问题排查(关键) 引用[5]强调权限配置一致性: 1. **检查物理路径权限** - 右键站点→管理网站→高级设置→查看物理路径 - 在资源管理器中右键该文件夹→属性→安全 - 添加`IIS_IUSRS`组并赋予**修改**权限 2. **检查应用程序池标识** - IIS管理器→应用程序池→选中池→高级设置 - 将"标识"改为`ApplicationPoolIdentity`(推荐)或自定义账户(需与引用[5]保持账密一致) ### 四、文件系统级检查 1. **磁盘空间与文件名验证** ```bash # 检查磁盘剩余空间(需>文件大小的2倍) fsutil volume diskfree C: ``` - 文件名避免使用中文或特殊符号,建议纯英文命名 2. **临时文件夹清理** - 清空`C:\Windows\Temp``C:\Users\{用户名}\AppData\Local\Temp` ### 五、网络与传输层诊断 引用[4]提供FTP测试方案: 1. **通过FTP命令行测试上传** ```batch ftp 123.123.123.123 ftpname ftppwd put "D:\ftpin\test.txt" # 使用小文件测试 ``` 若FTP成功而网页上传失败,则问题在Web层 ### 六、日志定位错误根源 1. **启用IIS失败请求跟踪** - IIS管理器→站点→失败请求跟踪→启用 - 设置状态码为`400-999`捕获所有错误 - 重现错误后查看`%SystemDrive%\inetpub\logs\FailedReqLogFiles` 2. **检查Windows事件日志** - 事件查看器→Windows日志→应用程序 - 筛选来源为`IIS-ASP`或`IIS-W3SVC`的错误 ### 解决方案总结 | 错误类型 | 解决措施 | |--------------------|--------------------------------------------------------------------------| | 上传大小超限 | 调整`maxAllowedContentLength`(IIS) + `maxRequestLength`(ASP.NET) | | 权限不足 | 赋予`IIS_IUSRS`修改权限 + 同步应用程序池标识 [^5] | | 磁盘空间不足 | 清理磁盘或扩容 | | 临时文件写入失败 | 检查`C:\Windows\Temp`权限(需`IIS_IUSRS`写入权) | | 路径无效 | 检查物理路径是否存在 + 文件名是否符合Windows命名规范 | > 若以上均无效,尝试在`web.config`中捕获详细错误: > ```xml > <system.webServer> > <httpErrors errorMode="Detailed" /> > </system.webServer> > ``` §§ 相关问题 §§ 1. 如何通过IIS日志精准定位文件上传错误? 2. 修改IIS上传限制后为何仍然报错413? 3. IIS应用程序池标识的最佳实践是什么? 4. Windows临时文件权限应如何配置以保证IIS正常运行? </think> 针对上传文件到IIS服务器时提示“未指定错误”的问题,结合引用资料IIS特性,以下是系统化解决方案: ### 一、核心配置检查(IIS 设置) 1. **上传大小限制调整** - 修改IIS请求过滤设置(引用[2]): ```bash # PowerShell管理员执行 Set-WebConfigurationProperty -Filter "/system.webServer/security/requestFiltering/requestLimits" -Name "maxAllowedContentLength" -Value 1073741824 -PSPath "IIS:\" -Location "Default Web Site" ``` 将`1073741824`设为实际需要的字节数(1GB示例)[^2] 2. **应用程序池权限配置**(引用[5]) - IIS管理器 → 应用程序池 → 选择对应池 → 高级设置 → 标识 → 自定义账户 - 输入具有**磁盘写入权限**的账户(需与物理路径权限一致) - 重启应用程序池网站[^5] --- ### 二、权限问题排查 1. **物理路径权限验证** - 资源管理器 → 右键上传目录 → 安全 → 添加: - `IIS_IUSRS`(读/写) - `应用程序池标识账户`(读/写) - `NETWORK SERVICE`(读/写) ```bash # 命令行验证权限(示例) icacls "C:\inetpub\upload" /grant "IIS_IUSRS:(OI)(CI)F" ``` 2. **跨服务器路径映射**(引用[5]) 若上传目录是网络映射驱动器: - 确认两台服务器使用**相同账户密码** - 应用程序池标识需显式指定该账户 - 重启IIS服务:`iisreset /restart` --- ### 三、文件系统级诊断 1. **磁盘空间检查** ```bash # 检查目标盘空间 fsutil volume diskfree C: ``` - 需保证剩余空间 > 上传文件大小 × 2 2. **临时目录清理** - 清空`C:\Windows\Temp``C:\inetpub\temp` - 验证Temp目录写入权限: ```bash cacls "C:\Windows\Temp" /E /G "IIS_IUSRS":F ``` --- ### 四、网络与协议层验证 1. **FTP命令行测试**(引用[4]) 排除HTTP层干扰: ```batch ftp 192.168.1.100 ftpname ftppwd put "C:\test\upload_test.txt" ``` 若FTP成功则问题在Web配置层[^4] 2. **请求过滤规则检查** - IIS管理器 → 站点 → 请求过滤 → 拒绝规则 - 检查是否误拦截文件扩展名 - 临时禁用所有规则测试 --- ### 五、高级错误捕获方案 1. **启用详细错误日志** ```xml <!-- web.config 添加 --> <system.webServer> <httpErrors errorMode="Detailed" /> <asp scriptErrorSentToBrowser="true"/> </system.webServer> ``` 2. **事件查看器定位** - 打开`事件查看器` → Windows日志 → 应用程序 - 筛选事件源:`IIS-ASPNET` 或 `IIS-W3SVC` - 查找上传失败时间点的**错误事件** > **紧急恢复方案**: > 对于生产环境,可创建最小测试页排除代码干扰: > ```html > <!-- test_upload.html --> > <form action="upload.php" method="post" enctype="multipart/form-data"> > <input type="file" name="testfile"> > <input type="submit" value="Test"> > </form> > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值