上传文件的几种方式

本文探讨了两种文件上传方式:一是使用Winform客户端通过HTTP请求进行文件上传,需注意IIS连接超时设置;二是利用Webservice实现文件上传的实例。
摘要由CSDN通过智能技术生成

1、通过http请求

(1)、首先写客服端,winform模拟一个post提交:

/// <summary> 
        /// 将本地文件上传到指定的服务器(HttpWebRequest方法) 
        /// </summary> 
        /// <param name="address">文件上传到的服务器</param> 
        /// <param name="fileNamePath">要上传的本地文件(全路径)</param> 
        /// <param name="saveName">文件上传后的名称</param> 
        /// <param name="progressBar">上传进度条</param> 
        /// <returns>成功返回1,失败返回0</returns> 
        private int Upload_Request2(string address, string fileNamePath, string saveName, ProgressBar progressBar)
        {
            int returnValue = 0;     // 要上传的文件 
            FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
            BinaryReader r = new BinaryReader(fs);     //时间戳 
            string strBoundary = "----------" + DateTime.Now.Ticks.ToString("x");
            byte[] boundaryBytes = Encoding.ASCII.GetBytes("\r\n--" + strBoundary + "\r\n");     //请求头部信息 
            StringBuilder sb = new StringBuilder();
            sb.Append("--");
            sb.Append(strBoundary);
            sb.Append("\r\n");
            sb.Append("Content-Disposition: form-data; name=\"");
            sb.Append("file");
            sb.Append("\"; filename=\"");
            sb.Append(saveName);
            sb.Append("\";");
            sb.Append("\r\n");
            sb.Append("Content-Type: ");
            sb.Append("application/octet-stream");
            sb.Append("\r\n");
            sb.Append("\r\n"
Selenium是一个流行的自动化测试工具,用于浏览器操作,包括文件上传。以下是几种在Selenium中上传文件方式: 1. **使用WebElement的sendKeys()方法**: - 找到文件输入元素(`<input type="file">`),通常这个元素有一个`sendKeys()`方法可以用来模拟用户选择文件。 ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC file_input = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "fileInput")) ) file_input.send_keys("path/to/your/file") ``` 2. **使用ActionChains模拟点击并选择文件**: - 如果`sendKeys()`不适用,例如在某些现代浏览器或非标准元素上,可以使用`ActionChains`来模拟真实用户操作。 ```python from selenium.webdriver.common.action_chains import ActionChains action = ActionChains(driver) action.click(file_input).send_keys("path/to/your/file").perform() ``` 3. **使用WebDriverWait和filechooser模拟**: - 对于某些复杂的情况,可能需要模拟文件选择器的交互,这通常涉及到处理JavaScript事件。 ```python from selenium.webdriver.support.ui import Select select = Select(driver.find_element_by_id("fileInput")) select.select_by_visible_text("Your File Name") ``` 相关问题-- 1. Selenium如何识别文件输入元素? 2. 在哪些情况下会使用ActionChains模拟文件上传? 3. 如何处理文件选择器的交互,而不只是简单地发送键入事件?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值