-( function () {
+( function ( mw, $ ) {
var ajaxUploadDestCheck = mw.config.get( 'wgAjaxUploadDestCheck' ),
fileExtensions = mw.config.get( 'wgFileExtensions' );
}
// Output result
- var destFile = document.getElementById('wpDestFile');
- if (destFile) {
- destFile.value = fname;
- wgUploadWarningObj.checkNow(fname) ;
+ var destFile = document.getElementById( 'wpDestFile' );
+ if ( destFile ) {
+ // Call decodeURIComponent function to remove possible URL-encoded characters
+ // from the file name (bug 30390). Especially likely with upload-form-url.
+ // decodeURIComponent can throw an exception in input is invalid utf-8
+ try {
+ destFile.value = decodeURIComponent( fname );
+ } catch ( e ) {
+ destFile.value = fname;
+ }
+ wgUploadWarningObj.checkNow( fname );
}
};
$( document ).ready( uploadSetup );
-}() );
+}( mediaWiki, jQuery ) );