小编Duc*_*e88的帖子

在Django中上传后如何获取文件绝对路径?

我想将文件上传到我的数据库,上传后将其导入并最终将数据导出到我的数据库中。我的上传工作正常,但我不确定如何在上传后获取文件的绝对路径。我可以打印出文档的名称,但是如果上传了相同的文档名称,它会被附加,但如果我调用它仍然显示原始文件名form.cleaned_data['document'].name. 我该怎么做才能获得绝对文件路径,然后调用一个函数来开始处理这个文件?

所以这就是我想要做的:

  • 用户上传 .csv 文件
  • 文件保存在 db 中(带有描述和文件路径。文件路径正确存储在 db 中)
  • 获取刚刚上传的文件的文件位置
  • 开始处理此文件以转换 .csv 数据并存储在数据库中

模型.py

from django.db import models

# Create your models here.
class Document(models.Model):
    description = models.CharField(max_length=255, blank=True)
    document = models.FileField(upload_to='documents/')
    uploaded_at = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

视图.py

from django.shortcuts import render, redirect
from django.views import View
# Create your views here.

from .forms import DocumentForm
from .models import Document   

class  FileUpload(View):
    def post(self, request):
        form = DocumentForm(request.POST, request.FILES)
        if form.is_valid():
            print()
            print(form.cleaned_data['document'].name)
            form.save()
            return redirect('main_db_model:home')
        else:
            return …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-forms django-views

8
推荐指数
1
解决办法
1万
查看次数

我应该在每次成功的消息处理后关闭套接字吗?

我正在编写一个具有 Java 服务器/客户端套接字的程序。将会有很多消息来回发送,并且在某些情况下,向服务器发送消息并等待一段时间,直到服务器发回“执行”消息。

这是我的计划:

  • 1台服务器(机器上可能有防病毒安全措施)
  • 3个客户(未来有空间容纳更多客户)
  • 基于客户端向服务器的输出,在服务器端执行并行和交错同步。
  • 当所有机器准备好(同步)时,当并行时,所有客户端都将收到一条“执行”消息,当交错时,客户端将按 1 接 1 的顺序发送一条“执行”命令

我已经开始构建程序来进行上述设置,一旦服务器收到消息,服务器就会根据输入执行操作,然后将消息发送回客户端。我过去遇到过消息无法正确发送或接收的问题,所以我的问题是:

  • 我是否保持套接字处于活动状态直到程序结束?
  • 或者我是否仅保持套接字打开,直到发生成功传输(完整握手),然后关闭套接字?让客户端下次想要发送消息时再次连接。

java sockets

5
推荐指数
1
解决办法
6984
查看次数

简单的string.equals()如果语句不能正常工作Java

我快要疯了.也许这是因为我已经工作了12个小时......但是为什么我的if语句在运行时没有评估为真if (band.equals("4384")?我正在打印band到屏幕上,它正在读取4384但它不会评估为真.我已经多次使用.equals()而没有问题,我做错了什么?

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        String endBand = " ";

        String str = "SCELL: UARFCN 4384, Prim. SC: 362, RSCP: 70, EcNo: 44";

        endBand = getBandNumber(str);

        System.out.println("endBand is " + endBand);

    }

    // ************************************************
    // Returns the current band that the device is on.
    // Currently only coded for 3G
    // ************************************************
    private static String getBandNumber(String str) {

        // The string returned …
Run Code Online (Sandbox Code Playgroud)

java string equals

4
推荐指数
2
解决办法
3383
查看次数

链接列表数组C++

所以我认为我理解如何实现一个指针数组,但我的编译器说不然=(.任何帮助都会受到赞赏,我觉得我很接近,但我错过了一些关键的东西.

1.)我有一个名为node的结构声明:

struct node {

int num;

node *next;

}
Run Code Online (Sandbox Code Playgroud)

2.)我已经声明了一个指针数组的指针,如下所示:

node **arrayOfPointers;
Run Code Online (Sandbox Code Playgroud)

3.)然后我通过这样做动态创建指针数组:

arrayOfPointers = new node*[arraySize];
Run Code Online (Sandbox Code Playgroud)

我的理解是,此时,arrayOfPointers现在指向x节点类型的数组,其中x为=到arraySize.

4.)但是当我想访问arrayOfPointers中的第五个元素来检查它的下一个指针是否为空时,我收到了一个分段错误错误.使用这个:

if (arrayOfPointers[5]->next == NULL)

{

cout << "I'm null" << endl;

}
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样?我可以通过执行以下操作为num赋值:arrayOfPointers [5] - > num = 77;

但我很困惑为什么检查结构中的指针导致错误.此外,虽然我们正在使用它,将arrayOfPointers传递给函数的正确原型是什么?它仍然是(节点**arrayOfPointers)还是其他类似的东西(node*&arrayOfPointers)?

提前感谢您提供的任何提示或指示(哈哈)!

完整代码(更新):

 /*
* Functions related to separate chain hashing
*/

struct chainNode
{
    int value;
    chainNode *next;
};

chainNode* CreateNewChainNode (int keyValue)
{
    chainNode *newNode;

    newNode = new (nothrow) chainNode;

    newNode->value = keyValue;
    newNode->next = NULL;

    return newNode;
} …
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers linked-list data-structures

3
推荐指数
1
解决办法
3万
查看次数

无法使用XML文件.InputStream为null

我在这做错了什么?我收到错误,输入流中没有任何内容,但事实并非如此.文件在那里,标题正确.我想抓住我放在XML文件中的ip地址.是否有更好的方法来解析文件而不是dBuilder.parse(XMLReader.class.getResourceAsStream("C:\\Tools\\CLA\\test.xml"));

我遇到了这个例外:

Caused by: java.lang.IllegalArgumentException: InputStream cannot be null
    at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
    at com.Intel.ameier.XMLparser.TryXML(XMLparser.java:17)
Run Code Online (Sandbox Code Playgroud)

这是代码:

import java.io.IOException;
import org.xml.sax.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;

public class XMLparser {

    protected void TryXML() throws ParserConfigurationException, SAXException, IOException{

        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();

        DocumentBuilder dBuilder = builderFactory.newDocumentBuilder();
        Document document = dBuilder.parse(XMLReader.class.getResourceAsStream("C:\\Tools\\test.xml"));
        document.normalize();

        NodeList rootNodes = document.getElementsByTagName("info");
        Node rootNode = rootNodes.item(0);
        Element rootElement = (Element)rootNode;
        NodeList compList = rootElement.getElementsByTagName("computer");
        for(int i = 0;i < compList.getLength(); i++){

            Node computer = compList.item(i);
            Element compElement = (Element)computer; …
Run Code Online (Sandbox Code Playgroud)

java xml inputstream

1
推荐指数
1
解决办法
8421
查看次数

通过ADB命令查询电话

有没有办法用ADB命令查询电话呼叫状态?

例如,我想查看电话中的电话是否仍处于活动状态,或者电话呼叫是否仍然存在(已丢弃)

java android adb

0
推荐指数
1
解决办法
3347
查看次数