課程
/后端開發(fā)
/Java
/Java中的文件上傳下載
為什么我上傳到了這個(gè)位置 然后圖片不能顯示在網(wǎng)頁中
2018-08-07
源自:Java中的文件上傳下載 2-6
正在回答
上傳到的路徑
上傳后不能顯示
package com.xlr.servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import javax.activation.FileDataSource;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
?* Servlet implementation class UploadServlet
?*/
@WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
? ? ? ?
? ? /**
? ? ?* @see HttpServlet#HttpServlet()
? ? ?*/
? ? public UploadServlet() {
? ? ? ? super();
? ? ? ? // TODO Auto-generated constructor stub
? ? }
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//從request當(dāng)中獲取流信息
InputStream fileSource = req.getInputStream();
String tempFileName = "E:/tempFile";
//tempFile指向臨時(shí)文件
File tempFile = new File(tempFileName);
//outputStream文件輸出流指向這個(gè)臨時(shí)文件
FileOutputStream outputStream = new FileOutputStream(tempFile);
byte b[] = new byte[1024];
int n;
while((n = fileSource.read(b))!= -1){
outputStream.write(b, 0, n);
//關(guān)閉輸出流和輸入流
outputStream.close();
fileSource.close();
//獲取上傳文件的名稱
RandomAccessFile randomFile = new RandomAccessFile(tempFile, "r");
//讀取文件第一、二行文件
randomFile.readLine();
String str = randomFile.readLine();
int beginIndex = str.lastIndexOf("=")+2;
int endIndex = str.lastIndexOf("\"");
String filename = str.substring(beginIndex, endIndex);
System.out.println(filename);
//獲取內(nèi)容
//重新定位文件指針到文件頭
randomFile.seek(0);
long startPosition = 0;
int i = 1;
//獲取文件內(nèi)容 開始位置
while((n = randomFile.readByte()) != -1 && i <= 4){
if(n == '\n'){
startPosition = randomFile.getFilePointer();
i++;
startPosition = startPosition - 1;
//獲取文件內(nèi)容 結(jié)束位置
randomFile.seek(randomFile.length());
long endPosition = randomFile.getFilePointer();
int j = 1;
while(endPosition >= 0 && j <= 2){
endPosition--;
randomFile.seek(endPosition);
if(randomFile.readByte() == '\n'){
j++;??
endPosition = endPosition - 1;
//設(shè)置保存上傳文件的路徑
String realPath = getServletContext().getRealPath("/")+"images";
// String realPath = "D:\\javaWorkPlace\\downloading\\WebContent\\images";
System.out.println(realPath);
File fileupload = new File(realPath);
//判斷文件是否存在。若不存在創(chuàng)建文件
if(!fileupload.exists()){
fileupload.mkdir();
File saveFile = new File(realPath,filename);
RandomAccessFile randomAccessFile = new RandomAccessFile(saveFile, "rw");
//從臨時(shí)文件當(dāng)中讀取文件內(nèi)容
randomFile.seek(startPosition);
while(startPosition < endPosition){
randomAccessFile.write(randomFile.readByte());
//關(guān)閉輸入輸出流、刪除臨時(shí)文件
randomAccessFile.close();
randomFile.close();
tempFile.delete();
//發(fā)送上傳成功的信號(hào)
req.setAttribute("result", "上傳成功");
RequestDispatcher dispatcher = req.getRequestDispatcher("jsp/01.jsp");
dispatcher.forward(req, resp);
<!-- 功能:上傳圖片并預(yù)覽
時(shí)間:2018/8/7?
修改人:小龍人
?-->
<%@ page language="java" contentType="text/html; charset=UTF-8"
? ? pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<!-- 取出部署的應(yīng)用程序名 -->
<base href="${pageContext.request.contextPath}/">
<!-- 引入js和css -->
<link rel="stylesheet" type="text/css" href="css/common.css">
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<!--? -->
<script type="text/javascript">
//圖片的預(yù)覽
$(function(){
//取得圖片列表的id并且設(shè)置事件
$(".thumbs a").click(function(){
//獲取連接地址
var largePath = $(this).attr("href");
//獲取地址下的標(biāo)簽
var largeAlt = $(this).attr("title");
//替換圖片的地址和標(biāo)簽
$("#largeImg").attr({
src:largePath,
alt:largeAlt,
});
//返回fasle 去除當(dāng)前頁的默認(rèn)在當(dāng)前也打開點(diǎn)擊圖片
return false;
//實(shí)現(xiàn)圖片上傳預(yù)覽
$("#myfile").change(function(){
? ? //$("#previewImg").attr("src","file:///" + $("#myfile").val());
? ? var pv = document.getElementById("previewImg");
? ? ? ?// IE5.5~9使用濾鏡
? ? ? ?if (pv.filters && typeof(pv.filters.item) === 'function'){
? ? ? ? ? ?pv.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = el.value;
? ? ? ?}else{
? ? ? ? var oFile = document.getElementById('myfile').files[0];
? ? ? ? var oReader = new FileReader();
? ? ? ? ? ?oReader.onload = function(e){
? ? ? ? ? ? $("#previewImg").attr("src", e.target.result);
? ? ? ? };
? ? ? ? oReader.readAsDataURL(oFile);
? ? ? ? }
? ?});
//實(shí)現(xiàn)隱藏顯示區(qū)域
var la = $("#large");
la.hide();
//實(shí)現(xiàn)動(dòng)態(tài)預(yù)覽
$("#previewImg").mousemove(function(e){
la.css({
//鼠標(biāo)當(dāng)前x,y軸
top:e.pageY,
left:e.pageX,
}).html('<img src="'+ this.src +'"/>').show();
}).mouseout(function(){
</script>
</head>
<body>
<img id="previewImg" alt="" src="images/preview.jpg" width="80" height="80">
<form action="UploadServlet" method="post" enctype="multipart/form-data">
請(qǐng)選擇圖片:<input id="myfile" name="myfile" type="file"/>
<input type="submit" value="提交"/>${result}
</form>
<!--? pointer-events:none(禁用鼠標(biāo)效果)解決圖片閃爍問題-->
<div id="large" style="pointer-events:none;"></div>
<hr>
<h2>圖片預(yù)覽</h2>
<p? style=" border: 1px solid black;display: block;width: 564px;height: 414px;">
<img id="largeImg" src="images/img1-lg.jpg" alt="Large Image"/>
</p>
<p class="thumbs" >
<a href="images/img2-lg.jpg" title="Image2"><img alt="" src="images/img2-thumb.jpg"></a>
<a href="images/img3-lg.jpg" title="Image3"><img alt="" src="images/img3-thumb.jpg"></a>
<a href="images/img4-lg.jpg" title="Image4"><img alt="" src="images/img4-thumb.jpg"></a>
<a href="images/img5-lg.jpg" title="Image5"><img alt="" src="images/img5-thumb.jpg"></a>
<a href="images/img6-lg.jpg" title="Image6"><img alt="" src="images/img6-thumb.jpg"></a>
</body>
</html>
你把你的代碼貼出來看看,還有就是不能顯示有沒有報(bào)錯(cuò)?
舉報(bào)
由簡入深,輕松實(shí)現(xiàn)文件上傳下載功能及相關(guān)框架的使用
2 回答上傳圖片成功后點(diǎn)擊小圖,大圖不顯示的問題
1 回答國際化后批量上傳如何顯示出到底哪個(gè)文件上傳錯(cuò)誤?
1 回答上傳出現(xiàn)問題
2 回答圖片上傳問題
1 回答上傳路徑問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-08-08
2018-08-08
2018-08-08
package com.xlr.servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import javax.activation.FileDataSource;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
?* Servlet implementation class UploadServlet
?*/
@WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
? ? ? ?
? ? /**
? ? ?* @see HttpServlet#HttpServlet()
? ? ?*/
? ? public UploadServlet() {
? ? ? ? super();
? ? ? ? // TODO Auto-generated constructor stub
? ? }
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//從request當(dāng)中獲取流信息
InputStream fileSource = req.getInputStream();
String tempFileName = "E:/tempFile";
//tempFile指向臨時(shí)文件
File tempFile = new File(tempFileName);
//outputStream文件輸出流指向這個(gè)臨時(shí)文件
FileOutputStream outputStream = new FileOutputStream(tempFile);
byte b[] = new byte[1024];
int n;
while((n = fileSource.read(b))!= -1){
outputStream.write(b, 0, n);
}
//關(guān)閉輸出流和輸入流
outputStream.close();
fileSource.close();
//獲取上傳文件的名稱
RandomAccessFile randomFile = new RandomAccessFile(tempFile, "r");
//讀取文件第一、二行文件
randomFile.readLine();
String str = randomFile.readLine();
int beginIndex = str.lastIndexOf("=")+2;
int endIndex = str.lastIndexOf("\"");
String filename = str.substring(beginIndex, endIndex);
System.out.println(filename);
//獲取內(nèi)容
//重新定位文件指針到文件頭
randomFile.seek(0);
long startPosition = 0;
int i = 1;
//獲取文件內(nèi)容 開始位置
while((n = randomFile.readByte()) != -1 && i <= 4){
if(n == '\n'){
startPosition = randomFile.getFilePointer();
i++;
}
}
startPosition = startPosition - 1;
//獲取文件內(nèi)容 結(jié)束位置
randomFile.seek(randomFile.length());
long endPosition = randomFile.getFilePointer();
int j = 1;
while(endPosition >= 0 && j <= 2){
endPosition--;
randomFile.seek(endPosition);
if(randomFile.readByte() == '\n'){
j++;??
}
}
endPosition = endPosition - 1;
//設(shè)置保存上傳文件的路徑
String realPath = getServletContext().getRealPath("/")+"images";
// String realPath = "D:\\javaWorkPlace\\downloading\\WebContent\\images";
System.out.println(realPath);
File fileupload = new File(realPath);
//判斷文件是否存在。若不存在創(chuàng)建文件
if(!fileupload.exists()){
fileupload.mkdir();
}
File saveFile = new File(realPath,filename);
RandomAccessFile randomAccessFile = new RandomAccessFile(saveFile, "rw");
//從臨時(shí)文件當(dāng)中讀取文件內(nèi)容
randomFile.seek(startPosition);
while(startPosition < endPosition){
randomAccessFile.write(randomFile.readByte());
startPosition = randomFile.getFilePointer();
}
//關(guān)閉輸入輸出流、刪除臨時(shí)文件
randomAccessFile.close();
randomFile.close();
tempFile.delete();
//發(fā)送上傳成功的信號(hào)
req.setAttribute("result", "上傳成功");
RequestDispatcher dispatcher = req.getRequestDispatcher("jsp/01.jsp");
dispatcher.forward(req, resp);
}
}
2018-08-08
<!-- 功能:上傳圖片并預(yù)覽
時(shí)間:2018/8/7?
修改人:小龍人
?-->
<%@ page language="java" contentType="text/html; charset=UTF-8"
? ? pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<!-- 取出部署的應(yīng)用程序名 -->
<base href="${pageContext.request.contextPath}/">
<!-- 引入js和css -->
<link rel="stylesheet" type="text/css" href="css/common.css">
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<!--? -->
<script type="text/javascript">
//圖片的預(yù)覽
$(function(){
//取得圖片列表的id并且設(shè)置事件
$(".thumbs a").click(function(){
//獲取連接地址
var largePath = $(this).attr("href");
//獲取地址下的標(biāo)簽
var largeAlt = $(this).attr("title");
//替換圖片的地址和標(biāo)簽
$("#largeImg").attr({
src:largePath,
alt:largeAlt,
});
//返回fasle 去除當(dāng)前頁的默認(rèn)在當(dāng)前也打開點(diǎn)擊圖片
return false;
});
//實(shí)現(xiàn)圖片上傳預(yù)覽
$("#myfile").change(function(){
? ? //$("#previewImg").attr("src","file:///" + $("#myfile").val());
? ? var pv = document.getElementById("previewImg");
? ? ? ?// IE5.5~9使用濾鏡
? ? ? ?if (pv.filters && typeof(pv.filters.item) === 'function'){
? ? ? ? ? ?pv.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = el.value;
? ? ? ?}else{
? ? ? ? var oFile = document.getElementById('myfile').files[0];
? ? ? ? var oReader = new FileReader();
? ? ? ? ? ?oReader.onload = function(e){
? ? ? ? ? ? $("#previewImg").attr("src", e.target.result);
? ? ? ? };
? ? ? ? oReader.readAsDataURL(oFile);
? ? ? ? }
? ?});
//實(shí)現(xiàn)隱藏顯示區(qū)域
var la = $("#large");
la.hide();
//實(shí)現(xiàn)動(dòng)態(tài)預(yù)覽
$("#previewImg").mousemove(function(e){
la.css({
//鼠標(biāo)當(dāng)前x,y軸
top:e.pageY,
left:e.pageX,
}).html('<img src="'+ this.src +'"/>').show();
}).mouseout(function(){
la.hide();
});
});
</script>
</head>
<body>
<img id="previewImg" alt="" src="images/preview.jpg" width="80" height="80">
<form action="UploadServlet" method="post" enctype="multipart/form-data">
請(qǐng)選擇圖片:<input id="myfile" name="myfile" type="file"/>
<input type="submit" value="提交"/>${result}
</form>
<!--? pointer-events:none(禁用鼠標(biāo)效果)解決圖片閃爍問題-->
<div id="large" style="pointer-events:none;"></div>
<hr>
<h2>圖片預(yù)覽</h2>
<p? style=" border: 1px solid black;display: block;width: 564px;height: 414px;">
<img id="largeImg" src="images/img1-lg.jpg" alt="Large Image"/>
</p>
<p class="thumbs" >
<a href="images/img2-lg.jpg" title="Image2"><img alt="" src="images/img2-thumb.jpg"></a>
<a href="images/img3-lg.jpg" title="Image3"><img alt="" src="images/img3-thumb.jpg"></a>
<a href="images/img4-lg.jpg" title="Image4"><img alt="" src="images/img4-thumb.jpg"></a>
<a href="images/img5-lg.jpg" title="Image5"><img alt="" src="images/img5-thumb.jpg"></a>
<a href="images/img6-lg.jpg" title="Image6"><img alt="" src="images/img6-thumb.jpg"></a>
</p>
</body>
</html>
2018-08-08
你把你的代碼貼出來看看,還有就是不能顯示有沒有報(bào)錯(cuò)?