1

我有两个页面,一个叫做upload-file.php,这个页面将图像上传到数据库和我的文件夹中。

我的 PHP 页面看起来像这样。

    if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file))  
    { 



        $insert=mysql_query("insert into match_item_image set item_id='".$_SESSION["session_temp"]."', image='".$name."',   adid='$adid'") or die(mysql_error());
$cc=mysql_insert_id();
        echo "success".$cc; 

我的另一个页面包含一个 javascript 函数,它在上传时显示我的图像。我遇到的问题是在将图像上传到我的文件夹时需要更改图像名称。我能够更改图像名称,但是当我上传图像时它显示为空白,因为当用户上传文件时,JavaScript 函数正在寻找图像的原始名称。

这是功能的一部分:

$(function()


{

    var btnUpload=$('#upload');
    var status=$('#status');
    new AjaxUpload(btnUpload, {
    action: 'upload-file.php',
    name: 'uploadfile',
    onSubmit: function(file, ext)
    {
     if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ 
     // extension is not allowed 
    status.text('Only JPG, PNG or GIF files are allowed');
    return false;
    }status.text('Uploading...');
    },

    onComplete: function(file, response)
    {
        //On completion clear the status
        status.text('');
        //Add uploaded file to list
        var bb=response.substr(0,7)
        var idd=response.replace('success',' ');
        var idb =idd.replace(/^\s*|\s*$/g,'');
        if(bb==="success")
        {


            $('<span id='+idd+'></span>').appendTo('#files').html('<img src="upload/+file+" alt="" width="290" height="330" class="image1" /><br><a href="javascript:void(0)"    onClick="deleteFile('+idd+');"  class="image1"   > <span   style="font-weight:bold;   font-size:14px; color:red;" >   Delete     </span></a>').addClass('success');
        }
        else 
        {
            $('<span></span>').appendTo('#files').text(response).addClass('error');
        }

请让我知道是否有人可以提供帮助。

我是 JavaScript 新手。

你好,

我忘了添加上传图片的表单看起来像这样

<div id="upload" ><span>Upload Image<span></div><span id="status"></span>
<table><tr><td id="files"></td></tr></table>

我只需要知道如何让我的代码显示我保存在我的文件夹中的图像名称,并且在我上传它之后,而不是用户上传的原始图像名称,因为可能有其他用户上传了具有相同名称的图像他们混在一起了。

感谢大家的帮助。我已经为此工作了数周,但我似乎无法弄清楚。我只是不想放弃这段代码,因为它正是我所需要的。

4

4 回答 4

1

您可以像这样将 PHP 直接写入您的 javascript 中:

<script>
alert('<?php echo $myVar; ?>');
</script>

或者,您可以创建 AJAX 调用来获取由 PHP 脚本处理的数据库变量。

根据您的代码推荐:

让您的 onSuccess 函数为您提供 PHP 页面中的文件名。您可以使用 JSON 执行此操作。请询问您是否需要帮助。

于 2012-08-15T17:04:25.300 回答
1

而不是这个PHP代码:

    echo "success".$cc; 

您可以将结果输出为 JSON 字符串,可以通过 JavaScript 轻松访问:

    header("Content-Type: application/json");
    echo "{
      \"status\" : \"success\",
      \"filename\" : "$file",
      \"id\" : $cc
    }";

而不是这个 JavaScript 部分

   //Add uploaded file to list
    var bb=response.substr(0,7)
    var idd=response.replace('success',' ');
    var idb =idd.replace(/^\s*|\s*$/g,'');

然后,您将能够访问结果的参数,就像响应对象的属性一样:

    var bb = response.status;
    var idd = response.id;
    var filename = response.filename;

有关详细信息,请参阅http://de.wikipedia.org/wiki/JSON。您还可以使用 php 函数进行 JSON 输出:http ://www.php.net/manual/de/function.json-encode.php

于 2012-08-15T17:20:51.843 回答
0
echo '<script type="text/javascript">var myJSVar = '.$myPHPVar.';</script>';
于 2012-08-15T17:04:57.323 回答
0

您需要让 PHP 脚本输出新名称,然后在 JavaScript 中使用它。您将如何继续提取响应取决于您的 AJAX 代码,我不熟悉您在示例中使用的内容。

于 2012-08-15T17:06:42.607 回答