文件上傳案例
① Vue+element_ui上傳文件,並傳遞額外參數(自動上傳)使用實例
<el-upload action="http://localhost:57937/api/Attchment/UploadAttachment"
:on-success="handleAvatarSuccess" list-type="picture-card"
:http-request="Change" :on-preview="handlePictureCardPreview"
:on-remove="handleRemove">
<i class="el-icon-plus"></i>
</el-upload>
//圖片上傳帶參數
Change (param, type) {
console.log(param, type);
let formData = new FormData()
formData.append('files', param.file)
formData.append("path", 'repair')// 額外參數
this.$http.post('/Attchment/UploadAttachment', formData).then(res => {
console.log(res);
});
},
API接收.net:
string typepath = HttpContext.Current.Request["path"];
② 圖片上傳案例,圖片上傳不到文件夾,怎麼修改
在360軟體管家裡有個 「格式工廠」 把它下載下來,可以轉換任何格式
③ 請高手給一個JS多文件上傳的例子(必須兼容IE)解決追加50分。請看補充。
一、Servlet實現文件上傳,需要添加第三方提供的jar包
下載地址:
1) commons-fileupload-1.2.2-bin.zip: 點擊打開鏈接
2) commons-io-2.3-bin.zip: 點擊打開鏈接
接著把這兩個jar包放到 lib文件夾下:
二:文件上傳的表單提交方式必須是POST方式,
編碼類型:enctype="multipart/form-data",默認是 application/x-www-form-urlencoded
比如:
<form action="FileUpLoad"enctype="multipart/form-data"method="post">
三、舉例:
1.fileupload.jsp
<%@ page language="java" import="javautil*" pageEncoding="UTF-8"%>
<%
String path = requestgetContextPath();
String basePath = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'fileuploadjsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="stylescss">
-->
</head>
<body>
<!-- enctype 默認是 application/x-www-form-urlencoded -->
<form action="FileUpLoad" enctype="multipart/form-data" method="post" >
用戶名:<input type="text" name="usename"> <br/>
上傳文件:<input type="file" name="file1"><br/>
上傳文件: <input type="file" name="file2"><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
2.實際處理文件上傳的 FileUpLoad.java
package comservletfileupload;
import javaioFile;
import javaio*;
import javaioIOException;
import javaioPrintWriter;
import javautilList;
import javaxservletServletException;
import javaxservlethttpHttpServlet;
import ;
import ;
import ;
import ;
import ;
import ;
/**
*
* @author Administrator
* 文件上傳
* 具體步驟:
* 1)獲得磁碟文件條目工廠 DiskFileItemFactory 要導包
* 2) 利用 request 獲取 真實路徑 ,供臨時文件存儲,和 最終文件存儲 ,這兩個存儲位置可不同,也可相同
* 3)對 DiskFileItemFactory 對象設置一些 屬性
* 4)高水平的API文件上傳處理 ServletFileUpload upload = new ServletFileUpload(factory);
* 目的是調用 parseRequest(request)方法 獲得 FileItem 集合list ,
*
* 5)在 FileItem 對象中 獲取信息, 遍歷, 判斷 表單提交過來的信息 是否是 普通文本信息 另做處理
* 6)
* 第一種 用第三方 提供的 itemwrite( new File(path,filename) ); 直接寫到磁碟上
* 第二種 手動處理
*
*/
public class FileUpLoad extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
requestsetCharacterEncoding("utf-8"); //設置編碼
//獲得磁碟文件條目工廠
DiskFileItemFactory factory = new DiskFileItemFactory();
//獲取文件需要上傳到的路徑
String path = requestgetRealPath("/upload");
//如果沒以下兩行設置的話,上傳大的 文件 會佔用 很多內存,
//設置暫時存放的 存儲室 , 這個存儲室,可以和 最終存儲文件 的目錄不同
/**
* 原理 它是先存到 暫時存儲室,然後在真正寫到 對應目錄的硬碟上,
* 按理來說 當上傳一個文件時,其實是上傳了兩份,第一個是以 tem 格式的
* 然後再將其真正寫到 對應目錄的硬碟上
*/
factorysetRepository(new File(path));
//設置 緩存的大小,當上傳文件的容量超過該緩存時,直接放到 暫時存儲室
factorysetSizeThreshold(1024*1024) ;
//高水平的API文件上傳處理
ServletFileUpload upload = new ServletFileUpload(factory);
try {
//可以上傳多個文件
List<FileItem> list = (List<FileItem>)uploadparseRequest(request);
for(FileItem item : list)
{
//獲取表單的屬性名字
String name = itemgetFieldName();
//如果獲取的 表單信息是普通的 文本 信息
if(itemisFormField())
{
//獲取用戶具體輸入的字元串 ,名字起得挺好,因為表單提交過來的是 字元串類型的
String value = itemgetString() ;
requestsetAttribute(name, value);
}
//對傳入的非 簡單的字元串進行處理 ,比如說二進制的 圖片,電影這些
else
{
/**
* 以下三步,主要獲取 上傳文件的名字
*/
//獲取路徑名
String value = itemgetName() ;
//索引到最後一個反斜杠
int start = valuelastIndexOf("\\");
//截取 上傳文件的 字元串名字,加1是 去掉反斜杠,
String filename = valuesubstring(start+1);
requestsetAttribute(name, filename);
//真正寫到磁碟上
//它拋出的異常 用exception 捕捉
//itemwrite( new File(path,filename) );//第三方提供的
//手動寫的
OutputStream out = new FileOutputStream(new File(path,filename));
InputStream in = itemgetInputStream() ;
int length = 0 ;
byte [] buf = new byte[1024] ;
Systemoutprintln("獲取上傳文件的總共的容量:"+itemgetSize());
// inread(buf) 每次讀到的數據存放在 buf 數組中
while( (length = inread(buf) ) != -1)
{
//在 buf 數組中 取出數據 寫到 (輸出流)磁碟上
outwrite(buf, 0, length);
}
inclose();
outclose();
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
catch (Exception e) {
// TODO Auto-generated catch block
//eprintStackTrace();
}
requestgetRequestDispatcher("filedemojsp")forward(request, response);
}
}
System.out.println("獲取上傳文件的總共的容量:"+item.getSize());
3.filedemo.jsp
<%@ page language="java" import="javautil*" pageEncoding="UTF-8"%>
<%
String path = requestgetContextPath();
String basePath = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'filedemojsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="stylescss">
-->
</head>
<body>
用戶名:${requestScopeusename } <br/>
文件:${requestScopefile1 }<br/>
${requestScopefile2 }<br/>
<!-- 把上傳的圖片顯示出來 -->
<img alt="go" src="upload/<%=(String)requestgetAttribute("file1")%> " />
</body>
</html>
4結果頁面:
以上就是本文的全部
④ 請問你有Thinkphp下使用Bootstrap File Input多文件上傳的案例嗎
現在我們開始使用插件
(1)首先引入文件
<!--css文件-->
<link href="__PUBLIC__/css/fileinput.css" media="all" rel="stylesheet" type="text/css" />
<link href="__PUBLIC__/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
<!--js文件-->
<script src="__PUBLIC__/js/jQuery.min.js" type="text/JavaScript"></script>
<script src="__PUBLIC__/js/bootstrap.min.js?v=3.3.6"></script>
<script src="__PUBLIC__/js/plugins/fileinput.js" type="text/javascript"></script>
<script src="__PUBLIC__/js/fileinput.min.js" type="text/javascript"></script>
(2)初始化控制項
<input id="file" name="file_data[]" type="file" multiple data-preview-file-type="any" data-show-caption="true">
data-preview-file-type="any" :設置之後可以上傳多個文件
name="file_data[]" :因為要上傳多個文件所以要用數組
(3)js初始化控制項
$("#file").fileinput({
uploadUrl: "{:U('Admin/Img/imgupload2')}",// 上傳路徑
uploadAsync: false,//是否非同步傳輸
maxFileCount: 5//最大文件上傳數量
}).on('filebatchpreupload', function(event, data, id, index) {
}).on('filebatchuploadsuccess', function(event, data) {//上傳成功從伺服器端返回的數據(即保存的文件名稱)
for(var i=0;i<data.response.length;i++){
alert(data.response[i].flag);
}
});
(4)thinkphp對應的方法
public function imgupload2(){
$upload = new \Think\Upload();// 實例化上傳類
$upload->maxSize = 3145728 ;// 設置附件上傳大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型
$upload->rootPath = './Public/Uploads/';// 設置附件上傳根目錄
$upload->savePath = ''; // 設置附件上傳(子)目錄
$info = $upload->upload(array($_FILES['file_data'])); // 上傳文件
$i=0;
if(!$info) {// 上傳錯誤提示錯誤信息
$a[$i]['flag']="no";
$this->ajaxReturn($a,'JSON');
}else{// 上傳成功 獲取上傳文件信息
foreach($info as $file){
$a[$i]['flag']=$file['savepath'].$file['savename'];
$i++;
}
}
$this->ajaxReturn($a,'JSON');
}
⑤ 怎麼用C#實現文件上傳下載 給個完整的案例啊 謝謝 最好帶建好的資料庫和表
你知道為什麼沒人回答你嗎?是因為你的要求太高了,說明你人比較懶,我只能告訴你,把上傳到伺服器的文件鏈接地址存放到資料庫中。資料庫建立一個表即可。
⑥ 怎麼用cftpconnection類編寫向ftp server上傳文件
為了與FTP Internet伺服器通訊,必須先創建一個CInternetSession實例,然後創建CFtpConnection對象。創建CFtpConnection對象不採用直接方式,而是調用CInternetSession::GetFtpConnertion來創建並返回一個指向它的指針。
CFtpConnection類的成員
構造函數 CFtpConnection 構造一個CFtpConnection對象
操作 SetCurrentDirectory 設置當前FTP目錄
GetCurrentDirectory 獲取此次連接的當前目錄
GetCurrentDirectoryAsURL 獲取作為URL的此次連接的當前目錄
RemoveDirectory 從伺服器移去指定目錄
CreateDirectory 在伺服器上構造一個目錄
Rename 將伺服器上的文件改名
Remove 從伺服器上移去一個文件
PutFile 將一個文件放到伺服器上
GetFile 從連接的伺服器上獲取一個文件
OpenFile 在連接的伺服器上打開一個文件
Close 關閉與伺服器的連接
實例一:上傳文件
CString strAppName = AfxGetAppName();
CInternetSession* pSession = new CInternetSession(strAppName);
CFtpConnection* pConn = pSession->GetFtpConnection("
10.46.1.232","Anonymous","",21);
pConn->SetCurrentDirectory("test");
CString strLocfile,strRemotefile;
strLocfile="C:\\cmd.txt";
strRemotefile="cmd.txt";
pConn->PutFile(strLocfile,strRemotefile,FTP_TRANSFER_TYPE_ASCII);
pConn->Close();
return 0;
實例二:Ftp的打開文件操作函數:OpenFile
⑦ 求SpringMVC大文件上傳詳解及實例代碼
SpringMVC的文件上傳非常簡便,首先導入文件上傳依賴的jar:
<!-- 文件上傳所依賴的jar包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
在springMVC-servlet.xml配置文件中配置文件解析器:
<!--1*1024*1024即1M resolveLazily屬性啟用是為了推遲文件解析,以便捕獲文件大小異常 -->
<!--文件上傳解析器-->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1048576"/>
<property name="defaultEncoding" value="UTF-8"/>
<property name="resolveLazily" value="true"/>
</bean>
注意解析器的id必須等於multipartResolver,否則上傳會出現異常
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.File;
@Controller
public class FileController {
/**
* 上傳單個文件操作
* MultipartFile file就是上傳的文件
* @return
*/
@RequestMapping(value = "/upload1.html")
public String fileUpload1(@RequestParam("file") MultipartFile file) {
try {
//將上傳的文件存在E:/upload/下
FileUtils.InputStreamToFile(file.getInputStream(), new File("E:/upload/",
file.getOriginalFilename()));
} catch (Exception e) {
e.printStackTrace();
}
//上傳成功返回原來頁面
return "/file.jsp";
}}
上傳文件時,Controller的方法中參數類型是MultipartFile即可將文件映射到參數上。
頁面:
file.jsp:
<form method="post" action="/upload1.html" enctype="multipart/form-data">
<input type="file" name="file"/>
<button type="submit" >提交</button>
</form>
⑧ 誰能說說java批量上傳文件的原理,並且給個例子吧 謝了
直接用struts2的就行了,批量也不要想的太復雜,就是後台定義成List<File> uploadFile;頁面就是<input type="file" name="uploadFile(這里要和你action方法里定義的那個List<File> uploadFile這個屬性名一樣)"/>,最後後台action方法 里的話就加一個for循環uploadFile就好了。具體struts2的上傳去網路搜了,例子太多,記的加分。
⑨ 司法部案例庫怎麼上傳案例
司法部案例庫上傳案例的方式如下:
1、點擊「智能識別上傳」請將文檔內容從原文件里復制,然後粘貼到下面的文本框里,點擊「同意並提交」。
2、點擊「文檔上傳」將文書的相關信息填寫完畢,然後點擊「提交」。
⑩ Android圖片上傳到阿里雲OSS小案例
1.在管理控制台找到OOS並開通
2.點擊存儲空間,創建bucket
1、 Android SDK開發包
Android Studio方式(推薦) Maven依賴
2、許可權設置
在 AndroidManifest.xml 文件中已經配置了這些許可權,否則,SDK 將無法正常工作。
3.混淆設置
修改 項目名app[proguard-rules.pro ]路徑下的proguard-rules.pro文件
4.寫工具類
(1)首先要有4個數據
END_POINT 、BUCKET_NAME 、Access Key ID、Access Key Secret
創建你的Access Key 然後將需要的值復制粘貼到工具類對應位置
(2)寫工具類,UploadHelper
(按鈕點擊上傳一張圖片,因為測試,我就把圖片路徑寫死了)
1、寫一個leyout
2.對應的Java類
3、結果驗證
看到如上結果,那恭喜你大功告成了。
[ps]有的人可能有個地方會報錯,當然不能原原本本的抄了
這里要換成你自己的全局Application Content,
另外,一個HashUtil.java
本文鏈接: https://blog.csdn.net/qq_37971615/article/details/81975465
