对皮特的爱,我不能让它接受任何变量到我的SQL数据库。如果我把静态信息它工作。我似乎无法通过scriptdata传递任何参数,因为我在顶部使用了智能模板系统,因此更具挑战性。
我试图这样做。
{literal}
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#fileUpload").uploadify({
'scriptData' :{'alb_id': '{/literal}$alb_id{literal}','mem_id': '{/literal}$info.mem_id{literal}'},
'uploader': '/ajax/upload/uploadify.swf',
'cancelImg': '/ajax/upload/cancel.png',
'script': '/ajax/upload/uploader.php',
'folder': 'photos',
'multi': true,
'displayData': 'speed',
'fileDesc' : 'Image Files',
'fileExt': '*.jpg;*.jpeg;',
'simUploadLimit': 200,
'width' : 130,
'queueID' : 'fileQueue',
'buttonImg': '/themes/mytheme/gfx/buttons/but_browse.gif'
});
});
</script>
{/literal}
在我的模板文件中。上传部分工作正常。只是不是mysql。我正在使用脚本内置的函数来调整缩略图的图像大小和不构建目录。一切正常。它只是不会将任何变量传递给db。
include_once("../../includes/config/config.inc.php");
//load libraries
include(DOC_ROOT."/libraries.php");
$conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS,1);
mysql_select_db(SQL_DB,$conn);
$alb_id = $_REQUEST['alb_id'];
$mem_id = $_REQUEST['mem_id'];
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$extension = ".jpeg";
$photo = build_thumbnailes($tempFile,$extension);
$sql ="INSERT INTO `photos`(`mem_id`, `photo`, `photo_med`, `photo_small`, `approved`,`posted`, `upload_date`)
VALUES
('$alb_id', '".$photo["ex"]."', '".$photo["med"]."','".$photo["small"]."' , '1', time(), time())";
mysql_query($sql) or die(mysql_error());
如果可以,请帮忙。我对这件事感到疯狂。感谢。
答案 0 :(得分:2)
嗯,我不知道这是否是“答案”,但我确实看到了一些问题。
在您的模板中,您有:
'scriptData': {'alb_id': '{/literal}$alb_id{literal}',
'mem_id': '{/literal}$info.mem_id{literal}'},
你的智能变量$alb_id
和$info.mem_id
将按字面意思传递(而不是它们的值)。你需要:
'scriptData': {'alb_id': '{/literal}{ $alb_id }{literal}',
'mem_id': '{/literal}{ $info.mem_id }{literal}'},
其次,您应该检查您的文件是否真的是PHP中的上传文件。而不是:
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
使用:
if (is_uploaded_file($_FILES['Filedata']['tmp_name'])) {
$tempFile = $_FILES['Filedata']['tmp_name'];
我真的怀疑你没有从你认为你得到的表格中获取数据。你怎么知道上传工作正常?您如何知道从表单传递的值?您可能希望从表单中打印出变量,看看您是否真的得到了您期望的结果。
你从MySQL得到错误吗?或者是数据没有出现?提供更多信息可能会在这里得到更好的答案。
答案 1 :(得分:0)
测试脚本的一种简单方法是以正常形式创建普通文件输入,并指向upload.php。因此,如果出现错误,您将会看到它。
build_tumbnailes是否有可能犯错误?
答案 2 :(得分:-1)
唯一需要删除{literal}
的内容。然后它应该工作!