Não consigo fazer upload do arquivo no Internet Explorer

0 respostas
Rauel

Eae galera, estou com um problema em anexar um arquivo .doc que tá no banco como tipo "BLOB" no mozilla FF e no chrome carregam tranquilo, mas no IE ele não é chamado, oq pode ser feito para resolver isso? oq pode tá acontecendo? rs....

segue os códigos

ExperienciaService.java
public String escreveArquivo(byte[] arquivo) throws IOException {
		HttpServletRequest request = RequestContext.getRequest();
		HttpSession sessao = request.getSession();
		String defaultImageFolder = sessao.getServletContext().getRealPath("/upload");
		
		//Define um nome e realiza o upload
		String fileName = getFileName("ArquivoCarregado.doc");
		String pathToWrite = defaultImageFolder + "/" + sessao.getId() + "/" + fileName;
		
		File file = new File(pathToWrite);
		file.getParentFile().mkdirs();
		
		FileOutputStream fileOutputStream = new FileOutputStream(file);
		fileOutputStream.write(arquivo);
		
		String caminho = pathToWrite.substring(pathToWrite.indexOf("upload"));
		caminho = String.format("http://%s:%d%s/%s", request.getServerName(), request.getServerPort(), request.getContextPath(), caminho);
		return caminho;
	}
	
	private String getFileName(String baseName) {
		String fileName = removeCaracteresEspeciais(baseName);
		//concatenando o timestamp no nome do arquivo
		if (fileName.indexOf(".") != -1) {
			fileName =  fileName.substring(0, fileName.indexOf(".")) 
			+ "_"+ new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) 
			+ fileName.substring(fileName.indexOf("."));
		}
		return fileName;
	}
	
	
	
	private byte[] getFile(String file) throws IOException {
		
		//file = removeCaracteresEspeciais(file);
		URL url = new URL(file);
		
		//o indexOf � para garantir n�o pegar o contexto
		String caminho = url.getFile().substring(url.getFile().indexOf("/",1));
		String caminhoRetorno = RequestContext.getRequest().getSession().getServletContext().getRealPath(caminho);
		
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		InputStream stream = new FileInputStream(caminhoRetorno);

		byte[] buffer = new byte[8192];
		int bytesRead = 0;

		while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
			baos.write(buffer, 0, bytesRead);
		}
		
		return baos.toByteArray();

	}

HTML

<form method="post" enctype="multipart/form-data" target="frameUpload" action="../upload" id="formUpload">
	<td align="left" colspan="2"><input type="file" size="60" name="arquivo"  id="fileAnexar"/><input type="button" id="btnUpload" value="Upload"/> <span id="containerFileName">Nenhum arquivo selecionado!</span> </td>
</form>
</tr>
Classeview.js
function onFrameUploadLoaded(e) {
		var response = document.getElementById( "frameUpload" ).contentDocument.body.innerHTML;

		if(response) {
			var responseJson = jQuery.parseJSON(response);
			_this.onUpload(responseJson);
		}
	}

	this.onUpload = function(event){
		if(event.status == "true") {
			setPathFile(event.path);
		} else {
			var mensagem = event.mensagem || "Erro ao realizar o upload!";
			alert(mensagem);
		}
	}
Criado 19 de novembro de 2012
Respostas 0
Participantes 1