如何将引用的js脚本保存到 localstrage 里面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将引用的js脚本保存到 localstrage 里面相关的知识,希望对你有一定的参考价值。

<script src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
如何将上面引用的js脚本保存到 localstrage 里面。

只是保存的话:
1、使用Ajax向指定地址发请求
2、把得到的responseText通过localStorage.setItem方法保存到相应的键值对里

但是你想保存js脚本文件,应该是想缓存js文件,不用每次都去向远端服务器发送请求,这样的话还需要:
1、加入条件判断,如果localStorage里存在相应的值就直接通过getItem取值;
2、把相应的文件内容生成scrip标签,才能保证组件正常工作
参考技术A localstrage只保存字符串。。

你可以把整个js文件当字符串保存,取出后eval(字符串)执行。

我的上传文件脚本如何将文件路径保存到数据库,返回错误消息并创建文件夹?

【中文标题】我的上传文件脚本如何将文件路径保存到数据库,返回错误消息并创建文件夹?【英文标题】:How can my upload file script save file path to the database, return an error message, and create a folder? 【发布时间】:2014-12-06 17:58:12 【问题描述】:

我正在制作一个脚本来上传文件。我有一些问题。

我正在使用the dropzonejs library。

    我需要将上传的文件信息保存到数据库中。我做了一个准备好的声明,但它不起作用:表中没有存储任何内容。

    表信息:userID (int 11)、image_name (varchar 50)、image_path (varchar 60)、up_time (varchar 60)、up_ip (varchar 45)。

    在哪里可以看到 MySQL 错误?我已经检查了 appdata 中的 .err 文件,但那里什么也没有。

    如何将$error_msg 从上传页面返回到表单页面?我必须将第一个检查(文件存在)从上传页面移动到 dropzone.js 文件,但我不确定如何执行此操作。也许已经有一个选项,但我搜索并没有找到。

HTML:

<link rel="stylesheet" href="/css/dropzone.css"/>

<script type="text/JavaScript" src="/js/dropzone.js"></script>

<form action="/upload"
      class="dropzone"
      id="my-awesome-dropzone"></form>

<?php
if (isset($error_msg)) 
    echo '<p class="error">' . $error_msg . '</p>';

?>

我的 upload.php 脚本:

require_once('/includes/functions.php');

$image = basename($_FILES['file']['name']);
$image = str_replace(' ','|',$image);

$img_dir = $_SERVER['DOCUMENT_ROOT'] . '/images/user_uploads/' . $_SESSION['username'] . '/';

if (file_exists($img_dir . $image)) 

    return $error_msg = $img_dir . $_FILES["file"]["name"] . " ya existe. ";

 elseif (move_uploaded_file($_FILES["file"]["tmp_name"],
    $img_dir . $image)) 

    $img_path = $img_dir . $image;
    $up_time = get_current_time();
    $up_ip = get_ip_address();

    if ($insert_stmt = $mysqli->prepare("INSERT INTO user_uploads (userID, image_name, image_path, up_time, up_ip) VALUES (?, ?, ?, ?, ?)")) 
        $insert_stmt->bind_param('issss', $_SESSION['user_id'], $_FILES["file"]["name"], $img_path, $up_time, $up_ip);

        if (! $insert_stmt->execute()) 
            return $error_msg = '¡Error al subir la imagen! (db_error)';
        
    
 else return $error_msg = '¡Error al subir la imagen!';

这只有在我使用$_SERVER['DOCUMENT_ROOT'] 作为图像目录时才有效。

    如果文件夹不存在(每个用户都有自己的上传文件夹),我如何告诉脚本自动创建它?

我在 Windows 中使用 XAMPP,但一旦完成,我会将其上传到 Linux 主机,所以也许我必须更改路径或其他东西。那么这两种操作系统有什么区别呢?

【问题讨论】:

这确实是三个独立的问题,应该这样问。 对不起,我认为只发布 1 次会更好,但我已经回答了。感谢您的更正。 【参考方案1】:

好的,我明白了:)

$tmp_name = $_FILES["file"]["tmp_name"];

$image = basename($_FILES['file']['name']);
$image = str_replace(' ', '|', $image);

$img_dir = $_SERVER['DOCUMENT_ROOT'] . '/images/user_uploads/' . $_SESSION['username'] . '/';

if (!file_exists($_SERVER['DOCUMENT_ROOT'] . '/images/user_uploads/' . $_SESSION['username'])) 
    mkdir($_SERVER['DOCUMENT_ROOT'] . '\\images\\user_uploads\\' . $_SESSION['username']);


move_uploaded_file($tmp_name, $img_dir . $image);

$img_path = $_SESSION['username'] . '/' . $image;
$up_time = get_current_time();
$up_ip = get_ip_address();

if ($stmt = $mysqli->prepare("INSERT INTO user_uploads (userID, image_name, image_path, up_time, up_ip) VALUES (?, ?, ?, ?, ?)")) 
    $stmt->bind_param('issss', $_SESSION['user_id'], $image, $img_path, $up_time, $up_ip);
    $stmt->execute();

使用这个 javascript,我认为只能从 javascript 本身返回错误消息,因此创建函数或设置消息就可以了:

  dictInvalidFileType: "No puedes subir este tipo de archivos.",
  dictResponseError: "Código de error statusCode.",

希望它可以帮助某人:)

【讨论】:

【参考方案2】:
    请提供您的最终查询及其值 您在一个文件中上传代码,因此您无法通过包含文件返回值,您需要将该代码包装在函数或类方法中。 请参考:Create a folder if it doesn't already exist

【讨论】:

最终查询和它的值是什么意思?什么将被发送到 MySQL?所以,我必须创建一个函数并将两个变量发送给它: $_FILES['file']['name'] 和 $_FILES['file']['tempname'] 对吗?

以上是关于如何将引用的js脚本保存到 localstrage 里面的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Vue JS 在子组件中保留数字和增量?

js如何保存文件

js文件如何引用外部js

如果我的第 3 方 js 脚本嵌入在网站上,如何自动保存每篇新文章的标题

在 bash 脚本中,如何引用单独的文件以在 for 循环中使用它? [复制]

html在哪里引用js文件?