如何在PHP/HTML页面上使用LPology Simple Ajax Uploader跨浏览器示例
我正在尝试安装一个具有广泛跨浏览器兼容性的上传程序(特别是对于较旧的浏览器),但只要有可能就会显示一个进度条,如果不可能,可能还会显示“上传…”字样 似乎有我想要的功能,应该很容易安装,但我的头撞在墙上。正如你所知道的,我对JavaScript是新手 这是我所做的如何在PHP/HTML页面上使用LPology Simple Ajax Uploader跨浏览器示例,php,ajax,cross-browser,progress-bar,uploader,Php,Ajax,Cross Browser,Progress Bar,Uploader,我正在尝试安装一个具有广泛跨浏览器兼容性的上传程序(特别是对于较旧的浏览器),但只要有可能就会显示一个进度条,如果不可能,可能还会显示“上传…”字样 似乎有我想要的功能,应该很容易安装,但我的头撞在墙上。正如你所知道的,我对JavaScript是新手 这是我所做的 已将插件上载到我的服务器 已成功将APC扩展安装到PHP并启用rfc1867 创建了一个docs文件夹以保存上载,并具有正确的权限 将从中复制的UploadHandler.php文件放在一起 在我的页面上尝试了以下代码(脚本几乎完全
TXT、DOC、DOCX、PDF和RTF(最大文件大小为5000K)
var progress=document.getElementById('progress'),//进度条
loaderImg=document.getElementById('loaderImg');//“加载”动画GIF
errBox=document.getElementById('errormsg');
var uploader=new ss.SimpleUpload({
按钮:“上传btn”,
url:“../ajax/Simple ajax Uploader master/extras/uploadHandler.php”,//服务器端处理程序
progressUrl:“../ajax/Simple ajax Uploader master/extras/uploadProgress.php”,//启用跨浏览器进度支持(下面有更多信息)
responseType:'json',
名称:“上载文件”,
最大尺寸:5000,
hoverClass:“ui状态悬停”,
focusClass:“ui状态焦点”,
disabledClass:“ui状态已禁用”,
onExtError:函数(文件名、扩展名){
警报(文件名+'不是允许的文件类型。“+”\n\n“+”只允许使用TXT、DOC、DOCX、PDF和RTF文件。“);
},
onSizeError:函数(文件名、文件大小){
警报(文件名+'太大。(最大文件大小5000K)';
},
startXHR:函数(文件名、大小){
progress.style.display='inline block';//显示进度条
this.setProgressBar(进度);//指定为进度条
//动态添加上载开始时显示的“取消”按钮
//通过在此处执行此操作,可以确保仅在以下浏览器中添加它:
//支持取消上传
var abort=document.createElement('button');
包装。追加子项(中止);
abort.className='btn btn sm btn info';
abort.innerHTML='Cancel';
//添加将取消上载的单击事件侦听器
//第二个参数是上传后是否应删除按钮
//true=是,上载后删除中止按钮
//false/default=不删除
this.setabortbttn(abort,true);
},
endXHR:函数(文件名){
button.innerHTML='上载…';
progress.style.display='none';//隐藏进度条
},
startNonXHR:函数(文件名){
loaderImg.style.display='inline block';//显示动画GIF
},
endNonXHR:函数(文件名){
button.innerHTML='上载…';
loaderImg.style.display='none';//隐藏动画GIF
}
});
当我点击“选择文件”按钮时,不会显示任何进度条,也不会上传任何内容。Firebug告诉我“进度”为空。非常感谢你的帮助 您需要使用引导来显示进度条
<button id="mergedp" class="btn btn-large btn-primary"> upload </button>
<div id="progressOuter" class="progress progress-striped" style="display:none;">
<div id="progressBar" class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
</div>
</div>
上传
或者在自定义CSS的演示中使用CSS您的开发人员控制台是否有任何指示错误的内容?另外,检查web检查器的网络选项卡,它将有ajax请求。点击它,就会得到一些不错的信息。我要冒险说,问题是路径位置。我尝试了开发人员给出的最简单示例,但仍然无法上传任何内容,也无法显示进度条。目前,我可以让它显示要上载的文件的名称和大小,但随后出现错误消息“上载名称不正确或未上载文件”。任何地方都没有上传任何内容。查看网络信息,该文件似乎以$\u POST而不是$\u文件结束。在GitHub问题部分,建议将multipart设置为true以解决此问题,但它对我不起作用。@Amina,你找到解决此问题的方法了吗?我主要是为了让它显示进度条并上传。如果你能等一个星期(我还有一个星期的时间),我会把有用的东西贴出来。我不记得上次是什么bug让我耽误了时间,但我会尝试将工作代码与损坏的代码进行比较。我从来没有发布答案,因为我挂上了一些其他问题与上传者(重命名文件;获得一个以上的上传者在页面上工作),所以没有考虑它解决了。
<input id="upload-btn" type="bHoutton" value="Choose file">
<span style="padding-left:5px;vertical-align:middle;">
<i>TXT, DOC, DOCX, PDF, and RTF (5000K max file size)</i>
</span>
<script language="JavaScript" type="text/javascript" src="ajax/Simple-Ajax-Uploader-master/SimpleAjaxUploader.min.js"></script>
<script>
var progress = document.getElementById('progress'), // progress bar
loaderImg = document.getElementById('loaderImg'); // "loading" animated GIF
errBox = document.getElementById('errormsg');
var uploader = new ss.SimpleUpload({
button: 'upload-btn',
url: '../ajax/Simple-Ajax-Uploader-master/extras/uploadHandler.php', // server side handler
progressUrl: '../ajax/Simple-Ajax-Uploader-master/extras/uploadProgress.php', // enables cross-browser progress support (more info below)
responseType: 'json',
name: 'uploadfile',
maxSize: 5000,
hoverClass: 'ui-state-hover',
focusClass: 'ui-state-focus',
disabledClass: 'ui-state-disabled',
onExtError: function(filename, extension) {
alert(filename + ' is not a permitted file type.' + "\n\n" + 'Only TXT, DOC, DOCX, PDF, and RTF files are allowed.');
},
onSizeError: function(filename, fileSize) {
alert(filename + ' is too big. (5000K max file size)');
},
startXHR: function(filename, size) {
progress.style.display = 'inline-block'; // show progress bar
this.setProgressBar(progress); // designate as progress bar
// Dynamically add a "Cancel" button to be displayed when upload begins
// By doing it here ensures that it will only be added in browses which
// support cancelling uploads
var abort = document.createElement('button');
wrap.appendChild(abort);
abort.className = 'btn btn-sm btn-info';
abort.innerHTML = 'Cancel';
// Adds click event listener that will cancel the upload
// The second argument is whether the button should be removed after the upload
// true = yes, remove abort button after upload
// false/default = do not remove
this.setAbortBtn(abort, true);
},
endXHR: function(filename) {
button.innerHTML = 'Uploading...';
progress.style.display = 'none'; // hide progress bar
},
startNonXHR: function(filename) {
loaderImg.style.display = 'inline-block'; // show animated GIF
},
endNonXHR: function(filename) {
button.innerHTML = 'Uploading...';
loaderImg.style.display = 'none'; // hide animated GIF
}
});
</script>
<button id="mergedp" class="btn btn-large btn-primary"> upload </button>
<div id="progressOuter" class="progress progress-striped" style="display:none;">
<div id="progressBar" class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
</div>
</div>