Невозможно прочитать файл из Angular и передать его в API, построенный с использованием JavaJavascript

Форум по Javascript
Ответить
Anonymous
 Невозможно прочитать файл из Angular и передать его в API, построенный с использованием Java

Сообщение Anonymous »

У меня есть приложение, где я использую Angular. Введите файл CSV и добавьте файл в форму.
ниже используется код < /p>


var fileInput = document.getElementById('chosenFile');
var fd = new FormData();
fd.append('fileMetadata', JSON.stringify(imgMetadata));
var file = fileInput.files[0];
fd.append('file', file);< /code>
< /div>
< /div>
< /p>
Теперь я звоню в http post, чтобы отправить файл на мой сервер, < /p>
enter code here

$http.post(uploadurl, fd, {
transformRequest: angular.identity,
transformResponse: angular.identity,
headers: {
"X-XSRF-TOKEN": PluginHelper.getCsrfToken(),
"Content-Type": undefined
}
}).then(function successCallback(response) {
console.log("In success callback");
var status = response.status;
if(status == "200")
{
var isValid = response.data;
console.log("FIleupload function in java "+isValid);
if(isValid == "filecopied")
{

$scope.errorText = "filecopied :";
}

}
}, function errorCallback(response) {
console.log("In error callback");
$scope.errorText = "Error in callback file function";

});
< /code>
На моем сервере я написал код Java для чтения файла. < /p>
@POST
@Path("/uploadfile/{csvdata}")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@AllowAll
public Response uploadfile(@PathParam("csvdata") String csvdata, @FormDataParam("fileMetadata") String fileMetadata,
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail, FormDataMultiPart multiPartData, @FormDataParam("fd") InputStream formdata) throws Exception {
try {
if (uploadedInputStream == null) {
log.error("Error: uploadedInputStream is null");
//return Response.status(Response.Status.BAD_REQUEST).entity("File input stream is null").build();
}
if (formdata == null) {
log.error("Error: formdata is null");
//return Response.status(Response.Status.BAD_REQUEST).entity("File input stream is null").build();
} else {
log.error("Error: formdata is NOT null");
}
// for file field
final FormDataBodyPart filePart = multiPartData.getField("");
final ContentDisposition fileDetails = filePart.getContentDisposition();
final InputStream fileInputStream = filePart.getValueAs(InputStream.class);
log.error(filePart + "-" + fileDetails + "--" + fileInputStream);
log.error("TRY FILEUPLOAD: " + csvdata);
log.error("File Metadata: " + fileMetadata);
// Process the uploaded file
String uploadedFileLocation = "d://uploaded/" + fileDetail.getFileName();
log.error("uploadedFileLocation: " + uploadedFileLocation);
log.error("fileDetail: " + fileDetail.getSize());
saveToFile(uploadedInputStream, uploadedFileLocation);
return Response.status(Response.Status.OK).entity("filecopied").build();

} catch (Exception e) {
log.error("catch uploadfile: " + e.toString() + "-" + e.getMessage());
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("Cannot copy!!").build();

}

}
private void saveToFile(InputStream uploadedInputStream, String target) {
try (OutputStream out = new FileOutputStream(new File(target))) {
log.error("TRY saveToFile");
int read;
byte[] bytes = new byte[1024];
while ((read = uploadedInputStream.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
} catch (IOException e) {
log.error("catch saveToFile: " + e.toString() + "-" + e.getMessage());
}
}
< /code>
Если вы видите параметры метода, < /p>
1-@PathParam("csvdata") String csvdata, @FormDataParam("fileMetadata") String fileMetadata,
2-@FormDataParam("file") InputStream uploadedInputStream,
3-@FormDataParam("file") FormDataContentDisposition fileDetail,FormDataMultiPart
4-multiPartData,@FormDataParam("fd") InputStream formdata
< /code>
Я пробовал выше параметры, но uploadedInputStream и InputStream всегда приходит NULL.
Я могу получить
csvdata
fileTail
filemetAdata < /p>
Но я не могу получить файл из xhtml в api api. . < /p>
Я попытался передавать несколько параметров в коде Java, но без удачи. < /p>
Пример вывода I Get IS
uploadedInputStream-это null
formData null
uploadfile: java.lang.nullpointerexception null < /pm>>

Подробнее здесь: https://stackoverflow.com/questions/794 ... using-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»