首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除URL - JS & PHP中的UTF-8 DOM

问删除URL - JS & PHP中的UTF-8 DOM
EN

Stack Overflow用户
提问于 2011-08-16 11:56:05
回答 2查看 1.4K关注 0票数 1

我对URL中的“奇怪”字符有一个问题。

我正在使用Uploadify脚本上传文件到服务器上。当我尝试onComplete加载预览图像时,我遇到了一个问题。

这是我的js:

代码语言:javascript
复制
<script type="text/javascript">
$(document).ready(function() {
   $('#file_upload').uploadify({
     'height'    : 30,
     'width'     : 100,
     'buttonImg' : '<?=base_url()?>style/images/buttons/button_dodaj_gray.png',
     'cancelImg' : '<?=base_url()?>style/js/uploadify/cancel.png',
     'wmode'     : 'transparent',
     'onComplete': function(event, ID, fileObj, response, data) {
          if( response != "ERROR" )
          {
              var imageSrc = "";
              //imageSrc = "/ads_images_temp/";
              imageSrc = response;
              $('.image_container').html('<img src="<?=base_url()?>'+imageSrc+'"></img>');
          }
     },
     'fileExt'   : '*.jpg;*.jpeg;*.png;*.gif',
     'displayData': 'percentage',
     'multi'     : false,
     'uploader'  : '<?=base_url()?>style/js/uploadify/uploadify.swf',
     'script'    : '/tools/upload/product/glavna',

     'auto'      : true
   });
});
</script>

问题就在眼前:$('.image_container').html('<img src="<?=base_url()?>'+imageSrc+'"></img>');。

我没有得到清晰的图像URL,但我得到了这样的信息:%EF%BB%BF768f32dd43cc1f90b79c83cceed57eb2.png。

文件名: 768f32dd43cc1f90b79c83cceed57eb2.png

更新:文件用于读取图像:

代码语言:javascript
复制
if ( !empty($_FILES) )
            {
                $config['upload_path'] = $temp_path;
                $config['allowed_types'] = '*';
                $config['max_size'] = 4000;
                $config['encrypt_name'] = true;

                $this->load->library('upload', $config);
                $this->upload->initialize($config);

                if( ! ($this->upload->do_upload("Filedata"))) // Napaka pri nalaganju slike
                {
                    //echo $this->upload->display_errors('<p>', '</p>');
                    echo "ERROR";
                }
                else // Vse OK, nadaljuj
                {
                    $img = $this->upload->data();

                    if($img['image_width'] > 650)
                    {
                        $config['image_library'] = 'gd2';
                        $config['source_image'] = $img['full_path'];
                        $config['create_thumb'] = TRUE;
                        $config['maintain_ratio'] = TRUE;
                        $config['width'] = 650;

                        $this->load->library('image_lib', $config);

                        $this->image_lib->resize();
                    }

                    // Resize image    
                    $this->Product_model->resize_image($img['full_path'], $temp_path.'/crop_'.$img["raw_name"].$img["file_ext"], 160, 120);
                    $this->Product_model->resize_image($img['full_path'], $temp_path.'/crop_crop_'.$img["raw_name"].$img["file_ext"], 80, 60);

                    //$this->session->set_userdata("oddaja_oglasa_glavnaSlika",$img["raw_name"].$img["file_ext"]);

                    $imeSlike = $img["raw_name"].$img["file_ext"];

                    echo $imeSlike;
                }
            }

编辑2:

Chrome控制台屏幕截图:http://imageshack.us/f/818/uploadifychromeconsole1.png/

你好,马里奥

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-16 20:23:46

我找到了一个解决方案- JSON!:)

PHP中的Echo:

代码语言:javascript
复制
    $json = array("name" => $imeSlike, "error" => 0);
    echo json_encode($json);

在联合来文中:

代码语言:javascript
复制
...
'onComplete': function(event, ID, fileObj, response, data) {
        eval("var obj1="+response);

        if( obj1.error == 0 )
        {
            $('.image_container').html('<img src="<?=base_url()?>ads_images_temp/crop_'+obj1.name+'"></img>');
        }
     },
...

感谢大家的时间和分享解决方案!

你好,马里奥

票数 0
EN

Stack Overflow用户

发布于 2011-08-16 12:01:04

EF BB BF是字节顺序标记 (BOM)的UTF-8表示.有些东西是保存或返回UTF-8编码的数据与可选的BOM在开始.

看来它已经在上传论坛上报道过了。

编辑

好的,所以echo $imeSlike保存的文件必须以BOM作为前3个字节。您需要将编辑器配置为,而不是,在保存PHP (或任何文件)时添加BOM。

作为另一种选择,如果您正在使用Windows,突出显示这类编码问题的一个很好的编辑器是EditPad (尽管有很多其他的编辑器可以配置BOM是否被添加)。您可以在选项中关闭BOM。或者您可以尝试将文件保存为ASCII编码,这也将删除BOM。但是,取决于PHP的内容,这可能不是一个实用的解决方案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7077817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档