我已经学会了在表单中使用精细的Uploader。但是,我不能让精细的Uploader不忽略文本区域的形式。JS库将输入字段数据传递到PHP端点,但不会对文本区域做任何事情。
下面是一个现场演示:http://www.digioppikirja.fi/v3/fineuploader2.html
如果您填写该表单并查看$_REQUEST的内容,您将看到除textarea内容之外的所有内容:textarea.txt
该怎么办呢?
HTML:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://www.digioppikirja.fi/v3/custom.fineuploader-4.4.0/custom.fineuploader-4.4.0.min.js"></script>
<link href="fineuploader.css">
<script type="text/template" id="qq-template">
<div class="qq-uploader-selector qq-uploader">
<div class="qq-upload-drop-area-selector qq-upload-drop-area" qq-hide-dropzone>
<span>Drop files here to upload</span>
</div>
<div class="qq-upload-button-selector qq-upload-button">
<div>Select Files</div>
</div>
<span class="qq-drop-processing-selector qq-drop-processing">
<span>Processing dropped files...</span>
<span class="qq-drop-processing-spinner-selector qq-drop-processing-spinner"></span>
</span>
<ul class="qq-upload-list-selector qq-upload-list">
<li>
<div class="qq-progress-bar-container-selector">
<div class="qq-progress-bar-selector qq-progress-bar"></div>
</div>
<span class="qq-upload-spinner-selector qq-upload-spinner"></span>
<span class="qq-upload-file-selector qq-upload-file"></span>
<span class="qq-upload-size-selector qq-upload-size"></span>
<a class="qq-upload-cancel-selector qq-upload-cancel" href="#">Cancel</a>
<span class="qq-upload-status-text-selector qq-upload-status-text"></span>
</li>
</ul>
</div>
</script>
<head>
<body>
<form action="endpoint2.php" method="post" enctype="multipart/form-data" id="qq-form">
<label>Enter your name</label>
<input type="text" name="user_name" required>
<label>Enter your email</label>
<input type="email" name="user_email" required>
<br /><br />
<label>The very best thing in travelling</label><br />
<textarea cols="50" rows="10" name="travelling"></textarea>
<input type="submit" value="Done">
</form>
<div id="my-uploader"></div>
<script>
$("#my-uploader").fineUploader();
</script>
</body>
PHP:
require_once "handler.php";
require_once "../cfg/digikirjat.cfg.php";
$uploader = new UploadHandler();
// Specify the list of valid extensions, ex. array("jpeg", "xml", "bmp")
$uploader->allowedExtensions = array(); // all files types allowed by default
// Specify max file size in bytes.
$uploader->sizeLimit = 10 * 1024 * 1024; // default is 10 MiB
// Specify the input name set in the javascript.
$uploader->inputName = "qqfile"; // matches Fine Uploader's default inputName value by default
// If you want to use the chunking/resume feature, specify the folder to temporarily save parts.
$uploader->chunksFolder = "chunks";
$method = $_SERVER["REQUEST_METHOD"];
if ($method == "POST") {
header("Content-Type: text/plain");
// Call handleUpload() with the name of the folder, relative to PHP's getcwd()
$result = $uploader->handleUpload($_dirs['temp'].'/upload/');
// To return a name used for uploaded file you can use the following line.
$result["uploadName"] = $uploader->getUploadName();
echo json_encode($result);
$a = print_r($_REQUEST, true);
file_put_contents(getcwd().'/dump_textarea.txt', $a);
}
else {
header("HTTP/1.0 405 Method Not Allowed");
}发布于 2014-05-10 14:34:12
看起来表单字段解析器目前没有处理<textarea>元素。我有打开一个案子,并将修复作为精细Uploader 5.0的一部分。
在解决这个问题之前,您可以很容易地通过在一个<textarea> (或任何其他想要的)回调处理程序中解析onUploader并通过setParams将它作为参数添加来解决这个问题。例如:
callbacks: {
onUpload: function(id) {
var textAreaContent = document.getElementsByName("travelling")[0].value;
this.setParams({travelling: textAreaContent}, id);
}
}注意:我还没有测试过上面的代码,如果您有任何问题,请告诉我,但是应该可以。
https://stackoverflow.com/questions/23581703
复制相似问题