1

したがって、ドキュメントに添付ファイルを送信する必要がありますが、それが 15mb より大きいかどうかを検証する必要があるため、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

Web のマークがないため、サイトが「信頼」されていないため、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>

ですから、Web のマークを XPage に含めることは可能で、どうすればそれを XPage の本体に入れることができるのでしょうか。

私のクライアントはセキュリティ オプションを手動で配置したくありませんが、IE を使用したいと考えています。助けてください (笑)。

javascriptを使用してファイルを選択するときにファイルサイズを確認する別の方法があれば興味深いでしょう。

4

2 に答える 2

0

古いブラウザー用の Java バリデーターを作成できますが、Javascript API が使用可能な場合 (最新のブラウザー) はそれを使用してください。

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);
        }       

    }   

}

これらのバリデーターは、faces-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>
于 2015-08-18T07:06:20.827 に答える