Знак Сети на Xpages
Поэтому мне нужно отправить вложение в документ, но я должен проверить, если оно больше 15 МБ, поэтому я использую этот код в javascript, чтобы получить файл:
var objFSO = new ActiveXObject("Scripting.FileSystemObject");
var filePath = document.getElementById(fileid).value;
var objFile = objFSO.getFile(filePath);
var fileSize = objFile.size; //size in kb
У меня ошибка при попытке создать ActiveXObject, потому что мой сайт не является "доверенным" из-за отсутствия метки в Интернете
<!doctype html>
<!-- saved from url=(0023)http://www.contoso.com/ -->
<html>
<head>
<title>A Mark of the Web Example.</title>
</head>
<body>
<p>Hello, World</p>
</body>
</html>
так что мне интересно, возможно ли иметь метку сети в XPage и как я мог бы поместить ее в тело XPage.
Мой клиент не хочет устанавливать опцию безопасности вручную, но хочет использовать IE, пожалуйста, помогите мне, ха-ха.
Если есть другой способ проверить размер файла при выборе файла с использованием JavaScript, было бы интересно.
2 ответа
Попробуйте этот код, чтобы проверить размер файла в HTML5 должен работать во всех современных браузерах
var fileSize=0
if (typeof FileReader !== "undefined") {
var filePath = document.getElementById(fileid);
fileSize= filePath.files[0].size;
}
Проверьте размер файла var для максимального ограничения вашего файла.
Используйте этот код, если браузер IE10 или новее и ваш старый код, если браузер старше.
Вы можете создать валидатор Java для старых браузеров, но если доступен API Javascript (современные браузеры), используйте его.
public class Attachment implements Validator {
private final static long BYTES_IN_1_MB = 1048576;
private final static long MAX_MB_ALLOWED = 10;
private final static String MSG_ERROR_SIZE = "File size cannot be bigger than {0} MBs";
public void validate(FacesContext fc, UIComponent uiComp, Object attach)
throws ValidatorException {
FacesMessage msg;
UploadedFile upFile = (UploadedFile) attach;
long max_bytes = BYTES_IN_1_MB * MAX_MB_ALLOWED;
// SIZE:
if (upFile.getContentLength() > max_bytes) {
String msgError = MSG_ERROR_SIZE.replace("{0}", String.valueOf(MAX_MB_ALLOWED));
msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msgError, msgError);
throw new ValidatorException(msg);
}
}
}
Эти валидаторы должны быть добавлены в face-config.xml
<validator>
<validator-id>attachmentValidator</validator-id>
<validator-class>com.faces.validator.Attachment</validator-class>
</validator>
Затем вы можете добавить валидатор в поле fileUpload:
<xp:this.validators>
<!-- Validator for Attachments -->
<xp:validator validatorId="attachmentValidator">
</xp:validator>
</xp:this.validators>