jQuery文件上传器发布在我的网站的邮政形式
问题描述:
我试图在位于管理面板上的post_form.php页面上使用jQuery File Uploader插件来替换我的当前上传器。最终,我希望上传器链接到post_form,它可以动态地允许我网站上的客户端创建帖子,从他们的管理面板帐户上传图片,音乐和视频文件。这些帖子将根据提交帖子的客户端提供给他们各自的个人资料页面。jQuery文件上传器发布在我的网站的邮政形式
我遇到的其中一个问题是,当我插入提交按钮的jQuery文件上传器代码的一部分时,预览表显示出来,但是一切都在提交按钮下方,并将其他字段转换为发布表单右边一行。我希望我的帖子页面上的插件显示在提交,状态和类别字段的上方,正如它在jQuery插件网站上的演示中所示。接下来我要做的事情是确保jQuery UploadHandler.php文件与我当前的postcontroller.php文件合并,以利用插件的特性和功能,同时保持我上传/文件夹的文件上传路径并在填写表单后点击提交按钮时,根据创建的海报的客户/用户ID,通过post_form向我的网站个人资料页上的用户提供邮件。
如果你有人可以帮助我解决这个问题,我将不胜感激,并乐意为你提供帮助。谢谢大家,我希望我能把一切都弄清楚,因为我是这里的新用户。
下面是从jQuery的文件上传插件代码对我post_form
“URL”文本字段代码为“职位名称”,“说明”的一部分,放在这里
<tr>
<th>Upload:</th>
<td width="250">
<!-- The file upload form used as target for the file upload widget -->
<form id="fileupload" action="//jquery-file-upload.appspot.com/" method="POST" enctype="multipart/form-data">
<!-- Redirect browsers with JavaScript disabled to the origin page -->
<noscript><input type="hidden" name="redirect" value="https://blueimp.github.io/jQuery-File-Upload/"></noscript>
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
<div class="fileupload-buttonbar">
<div class="fileupload-buttons">
<!-- The fileinput-button span is used to style the file input field as button -->
<span class="fileinput-button">
<span>Add files...</span>
<input type="file" name="files[]" multiple>
</span>
<button type="submit" class="start">Start upload</button>
<button type="reset" class="cancel">Cancel upload</button>
<button type="button" class="delete">Delete</button>
<input type="checkbox" class="toggle">
<!-- The global file processing state -->
<span class="fileupload-process"></span>
</div>
<!-- The global progress state -->
<div class="fileupload-progress fade" style="display:none">
<!-- The global progress bar -->
<div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div>
<!-- The extended global progress state -->
<div class="progress-extended"> </div>
</div>
</div>
<!-- The table listing the files available for upload/download -->
<table role="presentation"><tbody class="files"></tbody></table>
</form>
</td>
</tr>
<?php if(isset($data['row'])){?>
<tr>
代码个为 '提交', '取消' 和 '重置' 放在这里按钮
<div class="clear"></div>
<!-- The blueimp Gallery widget -->
<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls" data-filter=":even">
<div class="slides"></div>
<h3 class="title"></h3>
<a class="prev">‹</a>
<a class="next">›</a>
<a class="close">×</a>
<a class="play-pause"></a>
<ol class="indicator"></ol>
</div>
</div>
</div>
<!-- end content-table-inner ............................................END -->
</td>
<td id="tbl-border-right"></td>
</tr>
<tr>
<th class="sized bottomleft"></th>
<td id="tbl-border-bottom"> </td>
<th class="sized bottomright"></th>
</tr>
</table>
<div class="clear"> </div>
</div>
<!-- end content -->
<div class="clear"> </div>
</div>
<!-- end content-outer......END -->
<!-- The template to display files available for upload -->
<script id="template-upload" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-upload fade">
<td>
<span class="preview"></span>
</td>
<td>
<p class="name">{%=file.name%}</p>
<strong class="error"></strong>
</td>
<td>
<p class="size">Processing...</p>
<div class="progress"></div>
</td>
<td>
{% if (!i && !o.options.autoUpload) { %}
<button class="start" disabled>Start</button>
{% } %}
{% if (!i) { %}
<button class="cancel">Cancel</button>
{% } %}
</td>
</tr>
{% } %}
</script>
<!-- The template to display files available for download -->
<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-download fade">
<td>
<span class="preview">
{% if (file.thumbnailUrl) { %}
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
{% } %}
</span>
</td>
<td>
<p class="name">
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
</p>
{% if (file.error) { %}
<div><span class="error">Error</span> {%=file.error%}</div>
{% } %}
</td>
<td>
<span class="size">{%=o.formatFileSize(file.size)%}</span>
</td>
<td>
<button class="delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>Delete</button>
<input type="checkbox" name="delete" value="1" class="toggle">
</td>
</tr>
{% } %}
脚本行指出,在插件在线提供的链接放在这里
<script>
/*jslint unparam: true, regexp: true */
/*global window, $ */
$(function() {
'use strict';
// Change this to the location of your server-side upload handler:
var url = window.location.hostname === 'wmlmusicguide.com' ?
'//jquery-file-upload.appspot.com/' : 'server/php/',
uploadButton = $('<button/>')
.addClass('btn btn-primary')
.prop('disabled', true)
.text('Processing...')
.on('click', function() {
var $this = $(this),
data = $this.data();
$this
.off('click')
.text('Abort')
.on('click', function() {
$this.remove();
data.abort();
});
data.submit().always(function() {
$this.remove();
});
});
$('#fileupload').fileupload({
url: url,
dataType: 'json',
autoUpload: false,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
maxFileSize: 999000,
// Enable image resizing, except for Android and Opera,
// which actually support image resizing, but fail to
// send Blob objects via XHR requests:
disableImageResize: /Android(?!.*Chrome)|Opera/
.test(window.navigator.userAgent),
previewMaxWidth: 100,
previewMaxHeight: 100,
previewCrop: true
}).on('fileuploadadd', function (e, data) {
data.context = $('<div/>').appendTo('#files');
$.each(data.files, function (index, file) {
var node = $('<p/>')
.append($('<span/>').text(file.name));
if (!index) {
node
.append('<br>')
.append(uploadButton.clone(true).data(data));
}
node.appendTo(data.context);
});
}).on('fileuploadprocessalways', function (e, data) {
var index = data.index,
file = data.files[index],
node = $(data.context.children()[index]);
if (file.preview) {
node
.prepend('<br>')
.prepend(file.preview);
}
if (file.error) {
node
.append('<br>')
.append($('<span class="text-danger"/>').text(file.error));
}
if (index + 1 === data.files.length) {
data.context.find('button')
.text('Upload')
.prop('disabled', !!data.files.error);
}
}).on('fileuploadprogressall', function (e, data) {
var progress = parseInt(data.loaded/data.total * 100, 10);
$('#progress .progress-bar').css(
'width',
progress + '%'
);
}).on('fileuploaddone', function (e, data) {
$.each(data.result.files, function (index, file) {
if (file.url) {
var link = $('<a>')
.attr('target', '_blank')
.prop('href', file.url);
$(data.context.children()[index])
.wrap(link);
} else if (file.error) {
var error = $('<span class="text-danger"/>').text(file.error);
$(data.context.children()[index])
.append('<br>')
.append(error);
}
});
}).on('fileuploadfail', function (e, data) {
$.each(data.files, function (index) {
var error = $('<span class="text-danger"/>').text('File upload failed.');
$(data.context.children()[index])
.append('<br>')
.append(error);
});
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');
});
// Initialize the jQuery UI theme switcher:
$('#theme-switcher').change(function() {
var theme = $('#theme');
theme.prop(
'href',
theme.prop('href').replace(
/[\w\-]+\/jquery-ui.css/,
$(this).val() + '/jquery-ui.css'
)
);
});
// Post Form Validate
$(document).ready(function() {
$('#postForm').validate({
errorElement: "div",
rules: {
name: { required: true },
details: { required: true },
category: { required: true }
}
});
$('#restform').click(function(){
$('#postForm')[0].reset();
});
});
</script>
答
我能得到jQuery的文件上传,以示对post_form.php页面上我网站通过包括
<td colspan=2 width="100%">
<!-- The table listing the files available for upload/download -->
<table role="presentation"><tbody class="files"><textarea cols="60" rows="6"></textarea></tbody></table>
<div class="rfloat">
在文件上传代码的开头
<tr>
\t \t \t \t \t \t \t \t \t \t \t \t <th valign="top">Upload:</th>
\t \t \t \t \t \t <td colspan=2 width="100%"> \t \t \t \t \t
\t \t \t \t \t \t <!-- The table listing the files available for upload/download -->
\t \t \t \t \t \t <table role="presentation"><tbody class="files"><textarea cols="60" rows="6"></textarea></tbody></table>
\t \t \t \t \t \t
\t \t \t \t \t \t <div class="rfloat">
\t \t \t \t \t \t <form>
\t \t \t \t \t \t <label for="theme-switcher">Theme:</label>
\t \t \t \t \t \t <select id="theme-switcher" class="pull-right">
\t \t \t \t \t \t \t <option value="black-tie">Black Tie</option>
\t \t \t \t \t \t \t <option value="blitzer">Blitzer</option>
\t \t \t \t \t \t \t <option value="cupertino">Cupertino</option>
\t \t \t \t \t \t \t <option value="dark-hive" selected>Dark Hive</option>
\t \t \t \t \t \t \t <option value="dot-luv">Dot Luv</option>
\t \t \t \t \t \t \t <option value="eggplant">Eggplant</option>
\t \t \t \t \t \t \t <option value="excite-bike">Excite Bike</option>
\t \t \t \t \t \t \t <option value="flick">Flick</option>
\t \t \t \t \t \t \t <option value="hot-sneaks">Hot sneaks</option>
\t \t \t \t \t \t \t <option value="humanity">Humanity</option>
\t \t \t \t \t \t \t <option value="le-frog">Le Frog</option>
\t \t \t \t \t \t \t <option value="mint-choc">Mint Choc</option>
\t \t \t \t \t \t \t <option value="overcast">Overcast</option>
\t \t \t \t \t \t \t <option value="pepper-grinder">Pepper Grinder</option>
\t \t \t \t \t \t \t <option value="redmond">Redmond</option>
\t \t \t \t \t \t \t <option value="smoothness">Smoothness</option>
\t \t \t \t \t \t \t <option value="south-street">South Street</option>
\t \t \t \t \t \t \t <option value="start">Start</option>
\t \t \t \t \t \t \t <option value="sunny">Sunny</option>
\t \t \t \t \t \t \t <option value="swanky-purse">Swanky Purse</option>
\t \t \t \t \t \t \t <option value="trontastic">Trontastic</option>
\t \t \t \t \t \t \t <option value="ui-darkness">UI Darkness</option>
\t \t \t \t \t \t \t <option value="ui-lightness">UI Lightness</option>
\t \t \t \t \t \t \t <option value="vader">Vader</option>
\t \t \t \t \t \t </select>
\t \t \t \t \t \t </form>
\t \t \t \t \t \t </div>
\t \t \t \t \t \t \t <!-- The file upload form used as target for the file upload widget -->
<form id="fileupload" action="//jquery-file-upload.appspot.com/" method="POST" enctype="multipart/form-data">
<!-- Redirect browsers with JavaScript disabled to the origin page -->
<noscript><input type="hidden" name="redirect" value="https://blueimp.github.io/jQuery-File-Upload/"></noscript>
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
<div class="fileupload-buttonbar">
<div class="fileupload-buttons">
<!-- The fileinput-button span is used to style the file input field as button -->
<span class="fileinput-button">
<span>Add files...</span>
<input type="file" name="files[]" multiple>
</span>
<button type="submit" class="start">Start upload</button>
<button type="reset" class="cancel">Cancel upload</button>
<button type="button" class="delete">Delete</button>
<input type="checkbox" class="toggle">
<!-- The global file processing state -->
<span class="fileupload-process"></span>
</div>
<!-- The global progress state -->
<div class="fileupload-progress fade" style="display:none">
<!-- The global progress bar -->
<div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div>
<!-- The extended global progress state -->
<div class="progress-extended"> </div>
</div>
</div>
<!-- The table listing the files available for upload/download -->
<table role="presentation"><tbody class="files"></tbody></table>
</form>
<br>
<!-- The blueimp Gallery widget -->
<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls" data-filter=":even">
<div class="slides"></div>
<h3 class="title"></h3>
<a class="prev">‹</a>
<a class="next">›</a>
<a class="close">×</a>
<a class="play-pause"></a>
<ol class="indicator"></ol>
</div>
<!-- The template to display files available for upload -->
<script id="template-upload" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-upload fade">
<td>
<span class="preview"></span>
</td>
<td>
<p class="name">{%=file.name%}</p>
<strong class="error"></strong>
</td>
<td>
<p class="size">Processing...</p>
<div class="progress"></div>
</td>
<td>
{% if (!i && !o.options.autoUpload) { %}
<button class="start" disabled>Start</button>
{% } %}
{% if (!i) { %}
<button class="cancel">Cancel</button>
{% } %}
</td>
</tr>
{% } %}
</script>
<!-- The template to display files available for download -->
<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-download fade">
<td>
<span class="preview">
{% if (file.thumbnailUrl) { %}
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
{% } %}
</span>
</td>
<td>
<p class="name">
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
</p>
{% if (file.error) { %}
<div><span class="error">Error</span> {%=file.error%}</div>
{% } %}
</td>
<td>
<span class="size">{%=o.formatFileSize(file.size)%}</span>
</td>
<td>
<button class="delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>Delete</button>
<input type="checkbox" name="delete" value="1" class="toggle">
</td>
</tr>
{% } %}
</script>
\t \t \t \t \t \t </td>
\t \t \t \t \t </tr>
\t \t \t \t \t <tr>
你就可以修剪你的文字(或至少将其分割成段)?还可以将代码应用到仍然复制问题的最小示例?因为它是太多的文字和太多的代码在你的问题。 – IanS
我感谢你的反馈和观察。我对此表示歉意,希望我现在编辑的内容更好。我试图在快照中提供代码,但该网站表示,目前我还没有足够的信誉/凭证。因为我是新手,我不知道以最好的方式显示代码而不会太多的最佳方式。 –